Foros del Web » Programando para Internet » PHP »

Recuperar datos de Checkbox en PHP

Estas en el tema de Recuperar datos de Checkbox en PHP en el foro de PHP en Foros del Web. Hola buenas tardes. Desde un formulario envio una serie de datos entre ellos un checkbox, en realidad es un listado de productos que no tiene ...
  #1 (permalink)  
Antiguo 13/03/2012, 11:27
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 9 años, 6 meses
Puntos: 1
Recuperar datos de Checkbox en PHP

Hola buenas tardes.

Desde un formulario envio una serie de datos entre ellos un checkbox, en realidad es un listado de productos que no tiene por que ser siempre la misma cantidad, lo que pretendo es cle el cliente pueda seleccionar dichos una serie de productos y que cuando le de a enviar se reciban en otra página para que se guarden en una BBDD.

El problema que tengo es que solo me guarda el último producto, me refiero a que si el cliente en un listado de 15 articulos ha seleccionado 3 solo se me guardad la ID del tercer articulo, por lo que he podido comprobar en mysql si que me genera los registros pero los deja en blanco.

Está claro que hay algo que no estoy haciendo bien pero no encuentro el problema.

Les pongo el código que tengo espero que alguien me pueda ayudar.

este es el código que utilizo para listar los productos

Código PHP:
<?php
$sql
="SELECT id_producto, denominacion, registro FROM productos ORDER BY denominacion ASC";
                            
$r=mysql_query($sql$link);
                            
                            while (
$fila=mysql_fetch_assoc($r)){
                                
$id_producto=$fila["id_producto"];
                                
$denominacion=$fila["denominacion"];
                                
$registro=$fila["registro"];
                        
?>
                        
                            <!-- -listar productos para que el cliente los seleccione -->
                            <input type="checkbox" name="denominacion<?php echo $contar_n_aplicaciones?>" value="<?php echo $id_producto?>"><?php echo $denominacion?><br />
                        
                        <?php
                                $cuentatabindex
++;//sumarle 1 a tabindex 
                                
}
                                
                                echo 
$id_producto;
?>
y este es el código que utilizo para recoger los datos y grabarlos en la BBDD

Código PHP:
$denominacion=array($_POST["denominacion$cuenta"]);
                            echo 
$denominacion_aux=$denominacion[0];
                            
                            
$sql="INSERT INTO hojacontrolproductos (denominacion) VALUES ('$denominacion_aux')";
                            
$r=mysql_query($sql$link); 
Gracias nuevamente.
  #2 (permalink)  
Antiguo 13/03/2012, 11:36
 
Fecha de Ingreso: noviembre-2010
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 7 años, 1 mes
Puntos: 1
Respuesta: Recuperar datos de Checkbox en PHP

lo que yo creo es que como los datos están dentro de un ciclo cada vez que entra el nuevo valor remplaza al anterior y al finalizar el ciclo solo queda con el ultimo valor que consulto y por eso ese valor es el que se guarda
  #3 (permalink)  
Antiguo 13/03/2012, 11:40
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Recuperar datos de Checkbox en PHP

hola diegojimenez6630 eso es lo que me pasa.
Ahora lo que necesito es crear un ciclo dentro del ciclo para poder recuperar todos los datos pero la verdad que no se como plantearlo llevo ya un buen rato dandole vueltas y no lo veo claro.

Saludos.
  #4 (permalink)  
Antiguo 31/07/2012, 19:32
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 5 años, 9 meses
Puntos: 3
Respuesta: Recuperar datos de Checkbox en PHP

Que tal frmfernando, utiliza un bucle con for para que recorra todo el array de datos.

Dentro de tu código para recoger los datos y guardarlos en la BD (te dejo un ejemplo)
Código PHP:
Ver original
  1. $denominacion=$_POST['denominacion'];
  2. $n=count($denominacion);
  3.  
  4. for($i=0; $i<$n; $i++)
  5. {      
  6.  
  7. $insertar=mysql_query("INSERT INTO hojacontrolproductos (denominacion) VALUES('".$denominacion[$i]."')");
  8.  
  9. }

Y en tu nombre del checkbox ponlo con corchetes para indicar que va a ser un array:

Código PHP:
Ver original
  1. <input type="checkbox" name="denominacion[] .......   >"

Etiquetas: checkbox, formulario, mysql, registro, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:54.