Foros del Web » Programando para Internet » PHP »

como guardo un array de registros de checkbox

Estas en el tema de como guardo un array de registros de checkbox en el foro de PHP en Foros del Web. Hola a todos soy nuevo en el foro, me gustaria me ayuden con un problema que tengo... el cual es por medio de un formulario ...
  #1 (permalink)  
Antiguo 24/03/2011, 14:30
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 1 mes
Puntos: 1
Información como guardo un array de registros de checkbox

Hola a todos soy nuevo en el foro, me gustaria me ayuden con un problema que tengo... el cual es por medio de un formulario agregar un servicio con los diferentes precios como basic, advanced y premiun lo cual se me agregar correctamente, el problema esta en que este servicio aparte de los precios tiene especificaciones de ese servicio como una tabla de hosting.... y cada especificacion tiene 3 checkbox para indicar cual de los 3 paquetes tiene esas especificaciones el formulario que estoy implementando es el sget:
Código PHP:
<form action="" method="post">
<
div id="files">
<
div class="file" id="file1">
   <
input name="opciones" type="text">
   <
input name="opc1" type="checkbox">
   <
input name="opc2" type="checkbox">
<
input name="opc3" type="checkbox">
<
a name="file1" href="#">Quitar</a>
</
div>
<
div class="file" id="file2">
   <
input name="opciones" type="text">
   <
input name="opc1" type="checkbox">
   <
input name="opc2" type="checkbox">
   <
input name="opc3" type="checkbox">
<
a name="file2" href="#">Quitar</a>
</
div>
<
div class="file" id="file3">
<
input name="opciones" type="text">
   <
input name="opc1" type="checkbox">
   <
input name="opc2" type="checkbox">
   <
input name="opc3" type="checkbox">
<
a name="file3" href="#">Quitar</a>
</
div>
</
div>
<
input type="submit" name="send" value="Enviar">
</
form
y el codigo para poder capturar los datos que estoy implementando es el sgte:

Código PHP:
if(isset($_POST['send']){
$cont=0;
                    
$cant count($_POST['opciones']);
                    while(
$cont $cant ){ 
                    
$opciones $_POST['opciones']["$cont"];
                    
$sql mysql_query("INSERT INTO price_opc (id_price, opciones, opc1, opc2, opc3 ) VALUES ('".$id_price."', '".$opciones."', '".$opc1."', '".$opc2."', '".$opc3."')"); 
                    
$cont++;
                        
                    }

por el comento el script guarda los datos pero en forma erronea ya que si solo acepto el primer check me coge el check de todo la columna y asi para las demas tambien, espero me puedan ayudar.. antemano muchas gracias
  #2 (permalink)  
Antiguo 24/03/2011, 14:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como guardo un array de registros de checkbox

cuando varios <input/> usan el mismo name solo el último será enviado...

la solución consiste en usar nomenclatura del tipo array:
Código HTML:
<input name="opcion[clave][indice]"/> 
si usas esta técnica es posible relacionar todos los elementos que desees sin importar su naturaleza mediante una clave única...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/03/2011, 14:57
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: como guardo un array de registros de checkbox

Hola pateketrueke gracias por la pronta respuesta, no estoy muy familiarizado con esos arreglos, podrias ser mas especifico, me ayudaria mucho si me dieras un ejem
  #4 (permalink)  
Antiguo 24/03/2011, 16:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como guardo un array de registros de checkbox

analiza esto:

Código HTML:
<form action="" method="post">
<div id="files">
<div class="file" id="file1">
   <input name="opciones[0][text]" type="text">
   <input name="opciones[0][opc1]" type="checkbox">
   <input name="opciones[0][opc2]" type="checkbox">
<input name="opc3" type="checkbox">
<a name="file1" href="#">Quitar</a>
</div>
<div class="file" id="file2">
   <input name="opciones[1][text]" type="text">
   <input name="opciones[1][opc1]" type="checkbox">
   <input name="opciones[1][opc2]" type="checkbox">
   <input name="opciones[1][opc3]" type="checkbox">
<a name="file2" href="#">Quitar</a>
</div>
<div class="file" id="file3">
<input name="opciones[2][text]" type="text">
   <input name="opciones[2][opc1]" type="checkbox">
   <input name="opciones[2][opc2]" type="checkbox">
   <input name="opciones[2][opc3]" type="checkbox">
<a name="file3" href="#">Quitar</a>
</div>
</div>
<input type="submit" name="send" value="Enviar">
</form> 
al recibir el $_POST todo deberías estar agrupado, prueba así:
Código PHP:
print_r($_POST); 
¿que observas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 24/03/2011, 16:50
 
Fecha de Ingreso: enero-2011
Ubicación: Isla Cristina (Huelva)
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: como guardo un array de registros de checkbox

Lo comentado por el anterior usuario, para luego recoger esos datos puedes utilizar un bucle 'foreach' previamente... así, al estar todo por ID consecutivo, puedes recoger todo de golpe o la ID que especifiques =).

saludos,
  #6 (permalink)  
Antiguo 24/03/2011, 20:40
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: como guardo un array de registros de checkbox

muchas gracias por contestar a ambos, pateketrueke, utilize los cambios que le hiciste al formulario y me sale los campos seleccionados..... pero aun no tengo idea de como guardar los arreglos de registros a la base de datos... como comente antes no estoy familiarizado con arreglos y estado intentando y leyendo pero no doy con la solucion.. espero me hechen una manito para compreder mas sobre ello, antemano muchas gracias a los dos
  #7 (permalink)  
Antiguo 25/03/2011, 16:52
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: como guardo un array de registros de checkbox

Hola de nuevo, aun no logro hacer el grabado de los registro en mis base de datos, por lo poco que entendi realice este codigo pero aun no consigo agregarlo

Código PHP:
$cant count($_POST['opciones']);
for(
$a=$a <=$cant $cant++){
$i=1;
$coma="";
foreach(
$_POST['opciones'] as $value){ 
$value=$coma.$_POST["opciones"][$i];
$coma=", ";
$i++;
$sql mysql_query("INSERT INTO price_opc (id_price, opciones, opc1, opc2, opc3 ) VALUES ('".$id_price."', '".$value."')"); 
Me gustaria me ayuden para saber en donde estoy errando y poder solucionarlo, antemano muchas gracias por la ayuda
  #8 (permalink)  
Antiguo 25/03/2011, 21:00
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: como guardo un array de registros de checkbox

Hola de nuevo amigos, por fin pude resolver mi problema gracias por la poca ayuda, aunque halla sido poca me sirvio para entender los arreglos.

para capturar y guardar los datos en mi base de datos hice esto y me funciono, lo dejo en este post por si le es de ayuda a alguien en el futuro

Código PHP:
foreach($_POST['opciones'] as $indice=>$valor){
                    
$opc $valor[opc];
                    
$opc1 $valor[opc1];
                    
$opc2 $valor[opc2];
                    
$opc3 $valor[opc3];
                                
                    
$sql mysql_query("INSERT INTO price_opc (opc, opc1, opc2, opc3 ) VALUES ('".$opc."','".$opc1."','".$opc2."','".$opc3."',)"); 
  #9 (permalink)  
Antiguo 25/03/2011, 21:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como guardo un array de registros de checkbox

Cita:
Iniciado por miguelangelbravo Ver Mensaje
gracias por la poca ayuda, aunque halla sido poca me sirvio para entender los arreglos.
y disculpa que te hayamos dejado abandonado, pero hay veces en las que tenemos que dejar que uno solo se de de golpes de cabeza... al fin y al cabo es tu obligación aprender, y la nuestra orientar...

que bueno que por fin hayas entendido como funcionan los arreglos, y estoy seguro de que has comprendido el poder de los mismos, sobre todo cuando realizamos formularios y deseamos relacionar/agrupar datos...

en hora buena!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: checkbox, registros
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 08:25.