Foros del Web » Programando para Internet » PHP »

Enviar información de los checkbox seleccionados en dos formularios de una misma pagi

Estas en el tema de Enviar información de los checkbox seleccionados en dos formularios de una misma pagi en el foro de PHP en Foros del Web. Buena tarde a todos, primeramente quiero comentarles que he creado una pagina (basada en php y html) con dos formularios (2011 y 2012), en cada ...
  #1 (permalink)  
Antiguo 28/05/2012, 12:12
 
Fecha de Ingreso: mayo-2012
Mensajes: 40
Antigüedad: 7 años, 4 meses
Puntos: 0
Enviar información de los checkbox seleccionados en dos formularios de una misma pagi

Buena tarde a todos, primeramente quiero comentarles que he creado una pagina (basada en php y html) con dos formularios (2011 y 2012), en cada uno hay un check box por cada mes del año. Mi problema es que no puedo enviar informacion a una segunda pagina, de cuales checkboxs estan selecconados. He inntentado el metodo POST para los formularios y un input type=button. Si me lleva a la pagina requerida pero no transporte los valores de los checkboxs. AYUDAAAAAA!!!!!
  #2 (permalink)  
Antiguo 28/05/2012, 13:16
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 11 años, 5 meses
Puntos: 528
Respuesta: Enviar información de los checkbox seleccionados en dos formularios de una

Primero debes saber cómo se reciben los chekboxs, ya que a diferencia de los demás tipos de inputs, éstos sólo se reciben si están marcados.

Por otra parte, no puedes enviar dos formularios al mismo tiempo. Quizá si juntas ambos formularios en uno colocando un identificador a cada campo para distinguirlo si es 2011 ó 2012 te sea más sencillo.
  #3 (permalink)  
Antiguo 28/05/2012, 13:35
 
Fecha de Ingreso: mayo-2012
Mensajes: 40
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Enviar información de los checkbox seleccionados en dos formularios de una

Muchas gracias ocp001a por tu pronta respuesta. Si lo dejo en uno solo, con la función de activar y/o desactivar los checkboxs afecta todos los meses de ambos años. Lo puse en dos formularios porque he de suponer que el usuario a lo mejor requiere seleccionar todo 2011, pero a lo mejor solo algunos mese de 2012 (por ejemplo enero, febrero y marzo); entonces en uno solo sería fastidioso que te marque todos y luego tener que quitar uno por uno, en este ejemplo, los de 2012 que no quieres. Espero haberme dado a enteder...
Si tu me pudieras orientar en manejar otra forma de hacer lo que pretendo te lo agradecería...
  #4 (permalink)  
Antiguo 28/05/2012, 13:43
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 11 años, 5 meses
Puntos: 528
Respuesta: Enviar información de los checkbox seleccionados en dos formularios de una

Como te indicaba, el problema es no poder (de forma tradicional) enviar ambos formularios al mismo tiempo. Para lo que quieres, te convendría usar javascript, de tal forma, podrías controlar un poco mejor el marcar o desmarcarlos, aunque habría que ver qué tanto manejes el javascript para que te sea sencillo o complicado hacerlo.

Tal vez si indicas qué tipo de formulario tienes (tipo de datos y consultas) se te pueda aconsejar algún método, quizá los checkboxes no sean la mejor opción.
  #5 (permalink)  
Antiguo 28/05/2012, 15:02
 
Fecha de Ingreso: mayo-2012
Mensajes: 40
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Enviar información de los checkbox seleccionados en dos formularios de una

ocp001a de nuevo gracias ya pude controlarlo como lo requeria, me quede con un solo formulario e integre dos funciones script en base a la cantidad de checkboxs que tengo, aqui te dejo el código para que le de un vistazo a ver si es lo recomendable...

******Con el primero controlo Enero-Diciembre2011******
<script>
function selectall(){
for (i=0;i<13;i++)
{
if ( document.f1.elements[i].type == "checkbox" )
document.f1.elements[i].checked = document.f1.elements[0].checked
}
}
</script>

******Con el segundo controlo Enero-Diciembre2012******
<script>
function selectalldos(){
for (i=13;i<18;i++)
{
if ( document.f1.elements[i].type == "checkbox" )
document.f1.elements[i].checked = document.f1.elements[13].checked
}
}
</script>

*****Y asi el formulario******
<form name= "f1" method="POST" action="MostrarDatos.php?cte=<?php echo $cte?>&user=<?php echo $_GET['user']?>&tipouser=<?php echo $_GET['tipouser']?>">
<table border=3 align=center width=65% BGCOLOR="#BCC8D0">
<th align=left width=50%>
<FONT SIZE=2>
<input type="checkbox" onclick="selectall(document.forms[0])" />Marcar/Desmarcar Todo 2011<BR>
<INPUT TYPE="checkbox" NAME="enero11" value="1">Enero 2011<BR>
<INPUT TYPE="checkbox" NAME="febrero11" value="1">Febrero 2011<BR>
<INPUT TYPE="checkbox" NAME="marzo11" value="1">Marzo 2011<BR>
<INPUT TYPE="checkbox" NAME="abril11" value="1">Abril 2011<BR>
<INPUT TYPE="checkbox" NAME="mayo11" value="1">Mayo 2011<BR>
<INPUT TYPE="checkbox" NAME="junio11" value="1">Junio 2011<BR>
<INPUT TYPE="checkbox" NAME="julio11" value="1">Julio 2011<BR>
<INPUT TYPE="checkbox" NAME="agosto11" value="1">Agosto 2011<BR>
<INPUT TYPE="checkbox" NAME="septiembre11" value="1">Septiembre 2011<BR>
<INPUT TYPE="checkbox" NAME="octubre11" value="1">Octubre 2011<BR>
<INPUT TYPE="checkbox" NAME="noviembre11" value="1">Noviembre 2011<BR>
<INPUT TYPE="checkbox" NAME="diciembre11" value="1">Diciembre 2011<BR>
</FONT>
</th>
<th align=LEFT VALIGN=TOP>
<FONT SIZE=2>
<input type="checkbox" onclick="selectalldos(document.forms[13])" />Marcar/Desmarcar Todo 2012<BR>
<INPUT TYPE="checkbox" NAME="enero12" value="1">Enero 2012<BR>
<INPUT TYPE="checkbox" NAME="febrero12" value="1">Febrero 2012<BR>
<INPUT TYPE="checkbox" NAME="marzo12" value="1">Marzo 2012<BR>
<INPUT TYPE="checkbox" NAME="abril12" value="1">Abril 2012<BR>
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Mayo 2012<BR>-->
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Junio 2012<BR>-->
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Julio 2012<BR>-->
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Agosto 2012<BR>-->
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Septiembre 2012<BR>-->
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Octubre 2012<BR>-->
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Noviembre 2012<BR>-->
<!-- <INPUT TYPE="checkbox" NAME="abril12" value="1">Diciembre 2012<BR>-->
<FONT SIZE = 2>
</th>
</table>
<center><INPUT TYPE="submit" VALUE="Mostrar Información"></center><br>
</form>

Gracias...
  #6 (permalink)  
Antiguo 28/05/2012, 15:21
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 11 años, 5 meses
Puntos: 528
Respuesta: Enviar información de los checkbox seleccionados en dos formularios de una

Una opción es usar dos selects múltiples (uno para cada año). En la opción 1 estaría indicado 'todos' y luego los 12 meses. Si elijen uno o más de los meses consultas sobre esos meses, o si el usuario quiere todo simplemente elije la primer opción, con lo que evita marcar o desmarcar todo, y es más fácil procesarlo en el script que reciba los datos.

Por otro lado, para los checkboxs que quieres, debes tener en cuenta que no podrías tener ningún otro input antes de esos checkbox de lo contrario tu conteo en el for no funcionaría. Para esto sería más adecuado controlar por nombre o id, suponiendo que todos los checbox del 2011 se llamaran

2011_enero
2011_febrero....

podrías comprobar que el checkbox en cuestión pertenece a un año determinado, además de hacerlo todo con la misma función.
  #7 (permalink)  
Antiguo 28/05/2012, 15:34
 
Fecha de Ingreso: mayo-2012
Mensajes: 40
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Enviar información de los checkbox seleccionados en dos formularios de una

Ok, capte la idea de los select y tambhién de no tener ningun input antes...
En verdad muchas gracias y ya estare dandoles lata con otro tema más que abrire sobre como validar contraseñas en cuanto a que diferencie mayusculas de minusculas.
Muchas gracias y seguimos en contacto...

Etiquetas: checkbox, formulario, html, seleccionados
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:38.