Foros del Web » Programando para Internet » PHP »

Encuestas con checkbox y php

Estas en el tema de Encuestas con checkbox y php en el foro de PHP en Foros del Web. Muy buenas Tengo un problema más bien de planteamiento. Estoy realizando unas listas que se puede votar por los usuarios, por ej, tengo una ficha ...
  #1 (permalink)  
Antiguo 26/01/2012, 04:14
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 772
Antigüedad: 15 años, 7 meses
Puntos: 15
Encuestas con checkbox y php

Muy buenas

Tengo un problema más bien de planteamiento.

Estoy realizando unas listas que se puede votar por los usuarios, por ej, tengo una ficha con 5 opciones y se pueden votar las que más le guste al usuario.
Bueno la cosa es que estoy modificando el código porque lo hice hace tiempo y vi muchos problemas, y estoy "limpiándolo". El problema que tengo es que cuando un usuario selecciona, por ej, 3 de las 5 opciones que hay tengo que ir comprobando una a una y claro, si son 11 opciones tiene que hacer un bucle 11 veces, ya que los checkbox yo le pongo el nombre de op1, op2 (bueno, los pone un while solamente xD)

La cosa es que me gustaría saber si hay alguna manera alternativa y más rápida de comprobar cuales han sido marcados y ahorrar tiempo de proceso.

Alguna idea ?

Gracias :D !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #2 (permalink)  
Antiguo 26/01/2012, 05:52
 
Fecha de Ingreso: septiembre-2011
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Encuestas con checkbox y php

puedes recorrer los campos enviados en el formulario de la siguiente forma

<?php
foreach($_POST as $indice=>$valor){
echo $indice."=>".$valor."<br>";
}

?>

asi por ejemplo en si tienes 4 chekbox y as seleccionado el 2 y el tres eso mostrara

checkbox2=>on
checkbox3=>on

PD: por curiosidad tu conoces innova?
  #3 (permalink)  
Antiguo 26/01/2012, 06:12
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: Encuestas con checkbox y php

No hay alternativa, la única forma de comprobar si un checkbox ha sido seleccionado es viendolo desde la variable $_POST.

$_POST["op1"];
$_POST["op2"];
ETC...

Pero ya te digo que la diferencia entre que un bucle se ejecute 5 veces y otro se ejecute 11 es mínima. No se que tendrás dentro del bucle, pero las operaciones en PHP son muy rápidas y ejecutar un bucle 11 veces no es más que una milesima parte del tiempo total de ejecución.
  #4 (permalink)  
Antiguo 26/01/2012, 06:23
 
Fecha de Ingreso: septiembre-2011
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Encuestas con checkbox y php

No se si entendí muy bien pero según dices tu Tokkara, si tiene 11 checkboxs tiene que comprobar el valor que traen los 11 checks $_POST["op1"] $_POST["op2"]; ... ... $_POST["op11"]; aun cuando el usuario solo pique dos? creo que es así como el lo tiene

con la solución que le doy arriba si el usuario solo pico 2 el bucle recorre 2 no los once, que según entendí es lo que el busca..
  #5 (permalink)  
Antiguo 26/01/2012, 06:34
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 13 años
Puntos: 6
Respuesta: Encuestas con checkbox y php

Cactus, suponiendo que no mande nada más por post no? porque si tiene campos de texto entonces tu solución también muestra los campos de texto. Es decir no te limitas solo a las checkboxs
  #6 (permalink)  
Antiguo 26/01/2012, 06:38
 
Fecha de Ingreso: septiembre-2011
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Encuestas con checkbox y php

si claro, incluso aun cuando solo tenga el formulario checkbox el mismo botón tambien saldría.
  #7 (permalink)  
Antiguo 26/01/2012, 06:43
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: Encuestas con checkbox y php

Cita:
Iniciado por cactus Ver Mensaje
No se si entendí muy bien pero según dices tu Tokkara, si tiene 11 checkboxs tiene que comprobar el valor que traen los 11 checks $_POST["op1"] $_POST["op2"]; ... ... $_POST["op11"]; aun cuando el usuario solo pique dos? creo que es así como el lo tiene

con la solución que le doy arriba si el usuario solo pico 2 el bucle recorre 2 no los once, que según entendí es lo que el busca..
Ok, tienes razón, es que no entendí bien la pregunta inicial.

Cita:
Iniciado por Heent Ver Mensaje
Cactus, suponiendo que no mande nada más por post no? porque si tiene campos de texto entonces tu solución también muestra los campos de texto. Es decir no te limitas solo a las checkboxs
A ver si a la segunda.
Cambia el atributo name de los checkbox y ponle la cadena op[]. Así podrás acceder al resto del campo del formulario y cuando quieras comprobar los checkbox solo tienes que hacer:


<?php

foreach($_POST["op"] as $indice=>$valor){
echo "op".$indice."=>".$valor."<br>";
}
?>

A ver así.
  #8 (permalink)  
Antiguo 26/01/2012, 06:59
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 13 años
Puntos: 6
Respuesta: Encuestas con checkbox y php

Es una buena solución pero solo un matiz.

En name de los checkbox sen tendría que poner op[x] (x es el numero de checkbox) por ejemplo:

Código HTML:
Ver original
  1. <input type="checkbox" name="op[0]" value="cb0">
  2. <input type="checkbox" name="op[1]" value="cb1">
  3. <input type="checkbox" name="op[2]" value="cb2">
  4. <input type="checkbox" name="op[3]" value="cb3">

Entonces el código php sería:

Código PHP:
Ver original
  1. <?php
  2.     foreach($_POST["op"] as $index => $valor){
  3.         echo "op$index = $valor<br>";
  4.     }
  5. ?>

Si seleccionamos la 0 y la 3 nos saldrá:

Cita:
op0 = 0
op3 = 3
un saludo
  #9 (permalink)  
Antiguo 26/01/2012, 10:53
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 772
Antigüedad: 15 años, 7 meses
Puntos: 15
Respuesta: Encuestas con checkbox y php

Muchas gracias por las respuestas. Pensaba que había una forma más "directa" de saber cuales están. Había pensado algo un poco más lioso, rollo con javascript meter en un hidden los nombre de las opciones que se han marcado y ya tratar eso (un poco lio y perdería bastante tiempo), pero si son entre 5 y 15 opciones tampoco se pierde mucho tiempo, pero por curiosear más que nada xD

Gracias :)

PD: y si, conozco Innova
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #10 (permalink)  
Antiguo 06/02/2012, 23:45
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 19 años
Puntos: 2
Respuesta: Encuestas con checkbox y php

Sobre este hilo tengo una duda similar, tengo una encuesta que la primera pregunta son 2 botones "radio" con la opciones SI o NO, que suman los valores con


Código PHP:
Ver original
  1. $sqlupdate = "UPDATE encuesta SET Valor{$_POST['voto']} = Valor{$_POST['voto']}+1, Total = Total+1";

Código HTML:
Ver original
  1. <input name="voto" type="radio" value="1" onClick="habilitap2()">SI <br /><br />
  2.  
  3. <input name="voto" type="radio" value="2" onClick="deshabilitap2()">NO <br /><br />

el problema que tengo es que ahora tengo que añadir unos checkbox que se activarn (de inicio están disabled) al elegir la opción SI, mi duda es como podría sumar los valores de los diferentes checkbox para después poder sacar los % en imagenes como hago con los botones "radio"??? tendría que usar otra tabla???

Gracias por adelantado.
  #11 (permalink)  
Antiguo 10/04/2012, 20:56
 
Fecha de Ingreso: abril-2011
Mensajes: 1
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Encuestas con checkbox y php

Tengo una sola suda con respecto a las variables de este codigo
<?php
foreach($_POST["op"] as $index => $valor){
echo "op$index = $valor<br>";
}
?>
si alguien me las explica le agradesco de ante mano saludos

Etiquetas: checkbox, encuestas, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:29.