Comunidad de diseño web y desarrollo en internet online

Capturar valor de un Select armado dinamicamente

Citar            
MensajeEscrito el 27 Ago 2008 05:20 pm
Pueblo Clab... AUXILIO!!!!!

Estoy atorado con esto, veran tengo un select el cual cargo dinamicamente de esta forma:

Código :

 <?    
      $result_proy=mysql_query("select * from proyectos_subcategoria",$conectar);
      if ($dato = mysql_fetch_array($result_proy)){ 
            echo '<select name= "subcate" class="select2 ancho400" id="subcate">';
          do {
            echo '<option value= "'.$dato["id"].'">'.$dato["titulo"].'</option>'; 
         } while ($dato = mysql_fetch_array($result_proy)); 
            echo '</select>';} ?>

Hasta aqui bien, funciona, el detalle esta en que cuando presiono el boton enviar, que se encuentra mas abajo quiero recuperar el valor que en ese momento tenga el select, pero si lo recibo de esta forma:

Código :

$subcate=$_POST["subcate"];
siempre me devuelve vacio..

Que es lo que esta mal?
Necesito el valor de id del select...
Que tengo que hacer???

PLEASE!!!!

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox
Citar            
MensajeEscrito el 27 Ago 2008 06:48 pm
Que raro. Prueba estas dos cosas:

Cámbiale el id="subcate" al select por otra cosa diferente al mismo name. algo como id="id_subcate"

En PHP, al recibir los datos, has un

Código PHP :

print_r( $_POST );
Eso te mostrará todo lo que llegue por post.

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 27 Ago 2008 07:23 pm
En efecto, aunque yo usaba

Código :

var_dump
para ver el contenido de $_POST y claro.. lo que me aparece es:

Código :

id_subcate=>""
... No me jala los datos... Why???????????

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox
Citar            
MensajeEscrito el 27 Ago 2008 10:02 pm
El trozo de código que pones, no es suficiente.
Pon todo lo que atañe al formulario (es decir: la línea <form method=...>, también.)

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 28 Ago 2008 05:55 am
id_subcate?!

La variable por la que llegan los datos debe llamarse "subcate"

¿Hiciste lo que te dije de quitar el id="subcate" y dejar solo el name en el select?

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 28 Ago 2008 01:09 pm
Si si lo hice...
Ahora.. poner el codigo se me hace muy largo, explico la idea...

Tengo una tabla donde tengo proyectos, esta tabla tiene ID, proyecto, tiempo, responsable,etc.
Y tengo otra tabla llamada proyecto_fotos donde almaceno las fotos de los proyectos.
¿Porque asi? El detalle esta en que no se cuantas fotos va a tener un proyecto, es por eso que decidi crear una tabla que tenga solo el ID del proyecto y la foto que necesite. Esto haria que hayan "n" fotos por proyecto a quienes llegaria por medio del ID.

Ahora, estoy haciendo un administrador de contenidos para que puedan crear el proyecto y a la vez subir las fotos que necesiten. Empero, para ingresar las fotos debo saber a que ID pértenecen, es por eso que al ingresar las fotos, antes debo seleccionar uno de los proyectos previamente cargados en la tabla proyectos, esto para que me devuelva un ID y con ese almacenarlo en la tabla.

Pero cuando creo el Select dinamicamente y hago el envio por POST el "name" del Select se me devuelve pero vacio...
ALguien tiene una idea de porque? COn el resto de elementos de formularios si funciona.

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox
Citar            
MensajeEscrito el 28 Ago 2008 01:45 pm

Código PHP :

print_r($_POST);
   $HOST = "localhost";
   $USER = "root";
   $PASS = "";
   $DATABASE = "db_goiti";
   $conex = mysql_connect($HOST, $USER, $PASS);
   mysql_select_db($DATABASE, $conex);

   $result = mysql_query("SELECT * FROM tbl_notas");
   mysql_close();

     if ($dato = mysql_fetch_array($result)){ 
       echo '<form method=post action="">';
         echo '<select name= "subcate" class="select2 ancho400" id="subcate">';
         do {
          echo '<option value= "' . $dato["id"].'">' . $dato["nombre"].'</option>' . "\r\n"; 
         } while ($dato = mysql_fetch_array($result)); 
         echo '</select>';
       echo '<input type="submit" name=""></form>';
   }


Tome tu ejemplo, solo cambie el nombre de mi base de datos, mi tabla y el campo titulo, por el campo nombre.
Funciona perfecto, le das click en el submit y te regresa correctamente el valor del sselect

Por ejemplo

escribió:

Array ( [subcate] => 12 )


Prueba si este ejemplo en particular, funciona con tus datos.

Por cierto, que le pones al atriburo action, de tu formulario????
Lo asignas en tu html? o tambien en el php?

Saludos.[/quote]

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 28 Ago 2008 02:34 pm
Hey...

Gracias por el dato, ahora en el action, lo redirijo a una pagina PHP que es la que ejecuta otro proceso pero que es la que debe capturar los datos para guardarlos en la tabla...

Ahora.. el formulario esta en HTML mas el SELECT si esta creado con PHP...osea algo asi

Código :

<form id="form_pro" name="form_pro" method="post" action="send.php"enctype="multipart/form-data">

<table width="780" border="0" align="center" cellpadding="5" cellspacing="0" class="borde4">
   
   <tr>
      <td width="196" height="10">Proyecto</td>
      <td width="564">
      
        <?    
      $result_proy=mysql_query("select * from proyectos_subcategoria",$conectar);

      if ($dato = mysql_fetch_array($result_proy)){ 
         echo '<select name="subcate" class="select2 ancho400" id="subcate">';

          do {
          echo '<option value= "'.$dato["id"].'">'.$dato["titulo"].'</option>'; 
         } while ($dato = mysql_fetch_array($result_proy)); 
            echo '</select>';
} 
?>
      </td>
   </tr>
    <tr>
       <td width="196" height="10">Descripcion</td>
      <td width="564">
           <input name="des" type="text" id="des" value="<?=$row['des']?>" maxlength="200">
<!--$row['des'] viene de una consulta anteriormente hecha a otra tabla. No presenta problemass
      </td>
    </tr>
   
</table>
          <input type="button" name="actualizar" onClick="this.form.action='m_proy_a.php?a=2';this.form.submit();" id="actualizar" title="Actualizar fotos"> 
          <label for="actualizar" style="cursor:pointer;"><strong> Actualizar fotos</strong></label>
      </form>

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox
Citar            
MensajeEscrito el 28 Ago 2008 02:59 pm
ok acabo de pribar tu codigo

Código :

<?php
// le pego mis datos de conexion a mi BD
   $HOST = "localhost";
   $USER = "root";
   $PASS = "";
   $DATABASE = "db_goiti";
   $conex = mysql_connect($HOST, $USER, $PASS);
   mysql_select_db($DATABASE, $conex);
?>

<form id="form_pro" name="form_pro" method="post" action="send.php" enctype="multipart/form-data">

<table width="780" border="0" align="center" cellpadding="5" cellspacing="0" class="borde4">
   <tr>
      <td width="196" height="10">Proyecto</td>
      <td width="564">
      
        <?php
     // aqui uso los tags de apertura de script php completos y no solo el corto <?
      $result_proy=mysql_query("SELECT * FROM tbl_notas"); // pongo mi tabla
      if ($dato = mysql_fetch_array($result_proy)){ 
         echo '<select name="subcate" class="select2 ancho400" id="subcate">';

          do {
          echo '<option value= "'.$dato["id"].'">'.$dato["nombre"].'</option>'; // cambio el campo titulo por nombre
         } while ($dato = mysql_fetch_array($result_proy)); 
            echo '</select>';
} 
?>
      </td>
   </tr>
    <tr>
       <td width="196" height="10">Descripcion</td>
      <td width="564">
<!-- aqui uso los tags de apertura de script php completos y no solo el corto <? -->
           <input name="des" type="text" id="des" value="<?php $row['des']?>" maxlength="200">
<!-- cierro el comentario siguiente, porque no lo estaba -->
<!--$row['des'] viene de una consulta anteriormente hecha a otra tabla. No presenta problemass -->
      </td>
    </tr>
   
</table>
          <input type="button" name="actualizar" onClick="this.form.action='m_proy_a.php?a=2';this.form.submit();" id="actualizar" title="Actualizar fotos"> 
          <label for="actualizar" style="cursor:pointer;"><strong> Actualizar fotos</strong></label>
      </form>


Ahora asi esta la cosa, al probar el formulario, este se va a m_proy_a.php, que es el action que defines en el evento onclick, y no a send.php que es el que pones al tag action del formulario

Al probarlo asi como está, en el archivo m_proy_a.php, lo unico que tengo es un

Código :

<?php
print_r($_POST);
?>

y este me deveulve los valores correctamente
Array ( [subcate] => 11 [des] => asdasd )

Prueba el código y dinos si con estos cambios te funciona
Ahora, si es de esta manera como tu lo haces??? que en el form mandas los datos y los recibes en m_proy_a.php???

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.