Foros del Web » Programando para Internet » PHP »

Problema sencillo en form con checkboxes

Estas en el tema de Problema sencillo en form con checkboxes en el foro de PHP en Foros del Web. Hola, tengo un problema con un formulario con checkboxes. Tengo un formulario con tantos checkboxes como registros de una tabla específica MYSQL. Por ejemplo, si ...
  #1 (permalink)  
Antiguo 09/07/2013, 08:45
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 4 meses
Puntos: 14
Problema sencillo en form con checkboxes

Hola, tengo un problema con un formulario con checkboxes. Tengo un formulario con tantos checkboxes como registros de una tabla específica MYSQL. Por ejemplo, si tengo 8 registros, aparecen 8 checkbox, esto lo he conseguido con un while. El problema viene a la hora de recibir esos datos del formulario ya que solo me llega el primer checkbox que he seleccionado, no todos. Este es el código:

Código PHP:
<form name="clases" action="guardarclases.php" method="POST">

<?php
$consulta2
=mysql_query("SELECT * FROM asignaturas WHERE curso='".mysql_real_escape_string($cursosession)."'");
        while(
$saca2=mysql_fetch_array($consulta2)){
            
$asignatura2=$saca2['nombre'];
            
            
?><input type="checkbox" name="group2" value="<?php echo $asignatura2?>"><?php echo $asignatura2?></br>
<?php }?>

</form>
Aquí me aparecen los checkbox y yo los recibo de esta manera en 'guardarclases.php':

Código PHP:
$nombre2=$_POST['group2']; 
Entonces, al hacer un echo del $nombre2 me sale el primer checkbox que he pulsado cuando lo que quiero es que si he pulsado tres, me aparezca el nombre de esos tres checkbox. Muchas gracias y disculpen esta duda que sé que es tonta pero no consigo hallar la respuesta! Un saludo.
__________________
Creador de Vipefy , una nueva red social con un punto de vista diferente de las relaciones sociales.
  #2 (permalink)  
Antiguo 09/07/2013, 09:00
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Problema sencillo en form con checkboxes

Tendrás que ponerle un name distinto a cada checkbox, o ponerle al menos group[] para tener luego tu array en PHP. Pero si todos los checkboxes se llaman group2, sólo tendrás uno en realidad.
  #3 (permalink)  
Antiguo 09/07/2013, 09:13
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 4 meses
Puntos: 14
Respuesta: Problema sencillo en form con checkboxes

Pero la cuestión es que lo hago con un while, entonces solo tengo un name, no sé entonces como podría hacerlo :S
__________________
Creador de Vipefy , una nueva red social con un punto de vista diferente de las relaciones sociales.
  #4 (permalink)  
Antiguo 09/07/2013, 09:19
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 11 meses
Puntos: 56
Respuesta: Problema sencillo en form con checkboxes

Pues ponerle un nombre diferente al checkbox no veo el problema podrias ponerle un contador y que te quede:

name="group1";
name="group2";
name="group3";
name="group4";
name="group5";

deacuerdo al numero de elementos que tengas.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #5 (permalink)  
Antiguo 09/07/2013, 09:28
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Problema sencillo en form con checkboxes

O haces el contador como dice CesarHC, o lo dejas como:

Código HTML:
Ver original
  1. name="group2[]"

Y se creará un array que puedes luego hacer lo que quieras con él en PHP.
  #6 (permalink)  
Antiguo 10/07/2013, 13:04
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 4 meses
Puntos: 14
Respuesta: Problema sencillo en form con checkboxes

Cita:
Iniciado por CesarHC Ver Mensaje
Pues ponerle un nombre diferente al checkbox no veo el problema podrias ponerle un contador y que te quede:

name="group1";
name="group2";
name="group3";
name="group4";
name="group5";

deacuerdo al numero de elementos que tengas.
Hola, no puedo hacer eso porqué el numero de checkboxes es dinámico, es decir, en un usuario pueden aparecer 4 checkbox y en otro 5, por eso necesito un while para lograr tantos checkbox como registros en la base de datos hay.

No me aclaro con los arrays, no sé como ponerlo en el name y luego recuperarlos en un formulario POST, por ejemplo, puedo crear un array a partir del while de esta forma:

Código PHP:
    $notas = array();
while (
$saca mysql_fetch_assoc($consulta)) {
    
$key $saca['nombre'];
    
$notas[$key
Entonces, al checkbox ponerle: name="<?php echo $notas?>". Pero luego, tras enviar el formulario, no sabría como recoger ese array con $_POST['']. Ojalá podáis arrojarme algo de luz al asunto porque no lo veo nada claro, gracias a todos los que habéis respondido por la ayuda, un saludo.
__________________
Creador de Vipefy , una nueva red social con un punto de vista diferente de las relaciones sociales.
  #7 (permalink)  
Antiguo 10/07/2013, 14:17
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Problema sencillo en form con checkboxes

Ya te han dado la respuesta 2 veces, usa los corchetes (name="group2[]") para que el navegador envié los valores como array, así no importa cuantos checkbox imprimas, ni cuantos marque el usuario...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: checkboxes, form, html5, sencillo, todo, type
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 07:40.