Foros del Web » Programando para Internet » PHP »

Problema con checkbox al enviar un formulario en php

Estas en el tema de Problema con checkbox al enviar un formulario en php en el foro de PHP en Foros del Web. Buenas, soy nuevo en forosdelweb y nuevo en php digamos... y ya tengo mi primer consulta Mi problema es que tengo un formulario de inscripción ...
  #1 (permalink)  
Antiguo 28/04/2009, 13:23
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 33
Antigüedad: 15 años
Puntos: 1
Problema con checkbox al enviar un formulario en php

Buenas, soy nuevo en forosdelweb y nuevo en php digamos...
y ya tengo mi primer consulta

Mi problema es que tengo un formulario de inscripción a una carrera universitaria que es muy largo y lo he dividido en varias paginas para que el impacto visual no sea tan grande y que el usuario no sienta que va a perder mucho tiempo llenandolo

Del form1 al form2 paso las variables por campos ocultos hidden y asi sucesivamente hasta el form4 que es el que finalmente envía las variables a proceso.php que es quien envia por mail() los resultados.

El problemilla es que tengo barios checkbox por ej en el form1 de esta manera:
Código HTML:
Indique los turnos que cumple la escuela:
<form method="POST" action="form2.php">																				Mañana <input type="checkbox" name="escuela_turno" id="escuela_turno_mañana" value="mañana" />
Tarde <input type="checkbox" name="escuela_turno" id="escuela_turno_tarde" value="tarde" />
Noche <input type="checkbox" name="escuela_turno" id="escuela_turno_noche" value="noche" /> 
el form2 los recibe de esta manera:

Código HTML:
<form method="POST" action="form3.php">	
<input name="escuela_turno" type="hidden" value="<?= $_POST['escuela_turno'] ?>" />

... y luego sigue con sus campos
aqui les pongo un pedazo del proceso.php ya que es muy largo son muchas variables

Código PHP:
<?
// Recepcion de datos
$escuela_nombre=$_POST['escuela_nombre'];
$escuela_antiguedad=$_POST['escuela_antiguedad'];
$escuela_direccion=$_POST['escuela_direccion'];
$escuela_turno=$_POST['escuela_turno'];
// aqui continuan las variables 


// Fin de recepcion de datos

// Accion de envio
//-----------------//
$para='';
$asunto='Nuevo Inscripto';
$mensaje='

Formulario de Inscripcion al Certamen de Valores:

Enviado por: '
.$inscripto_nombre.'

Datos de la escuela:

Nombre de la escuela: '
.$escuela_nombre.'
Antiguedad de la escuela: '
.$escuela_antiguedad.'
Dirección: '
.$escuela_direccion.'
Indique que turno cumple la escuela: '
.$escuela_turno.'
// aqui continuan



'
;
$desde='';
mail($para,$asunto,$mensaje,$desde);
header("location: gracias.php"); 

?>
el problema es que al procesar el envio por php no me llegan todas las opciones que tipeo el usuario sino que solo me llega la ultima que haya seleccionado,
no se si el error es al pasar al form2 las variable toma una sola o bien es proceso.php el que elimina las opciones repetidas, o bien es mail() que no trabaja de ese modo y tenga que ponerle un nombre distinto a cada checkbox

antes cuando lo trabajaba en html y mandaba un formulario por cgi me llegaba por ej:
turno: turno1, turno2, turno3

en cambio ahora solo me llega turno: turno3

Si bien soy muy ignorante en el tema y debería haberlo trabajado con sesiones y bases de datos, lo cual no me parecio necesario ya que mi cliente no necesitara luego los datos sino solo que le lleguen por mail...
Ruego a uustedes paciencia porque soy muy nuevo, espero haber sido claro y agradezco su ayuda.
PD: perdon si no debería haber posteado aqui pero no entiendo muy bien tampoco aun las secciones del sitio.. gracias
  #2 (permalink)  
Antiguo 28/04/2009, 13:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 51
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Problema con checkbox al enviar un formulario en php

Creo que el problemilla es que tienes el mismo nombre en los checkbox.. deben tener diferentes nombres, si no solo se muestra lo ultimo que haya seleccionado..
  #3 (permalink)  
Antiguo 28/04/2009, 13:43
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 33
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con checkbox al enviar un formulario en php

ok., gracias yo no les puse distinto nombre ya que sino se me iba a hacer muy larga la lista de variables, calcula que en el proceso.php son alrededor de 180 variables ... imaginate si todas las que son checkbox son distintas..
pero bueno si no queda otra

gracias rafa!
  #4 (permalink)  
Antiguo 28/04/2009, 14:21
 
Fecha de Ingreso: mayo-2006
Mensajes: 58
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema con checkbox al enviar un formulario en php

Lo que puedes hacer es nombrar los checkbox como un array es decir:

Código HTML:
Escuela mañana	<input type="checkbox" name="escuela_turno[]" id="escuela_turno_mañana" value="mañana" />
Escuela tarde	<input type="checkbox" name="escuela_turno[]" id="escuela_turno_tarde" value="tarde" />
Escuela noche	<input type="checkbox" name="escuela_turno[]" id="escuela_tarde_noche" value="noche" /> 
Y accedes a ellos en php en un ciclo, por ejemplo:

Código PHP:
$turno $_POST["escuela_turno"];
$count count($turno);
for(
$i=0$i<=$count$i++){
     echo 
$turno[$i];

El arreglo lo contendría
Código PHP:
$_POST["escuela turno"
y el arreglo es:
Código PHP:
Array ( [0] => mañana [1] => tarde [2] => noche 
Espero que te sirva eso para trabajar con tus checkboxes

Salu2
  #5 (permalink)  
Antiguo 28/04/2009, 15:14
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 33
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con checkbox al enviar un formulario en php

perfecto fagos, me solucionas un poco la congestión de variables
gracias
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 05:57.