Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: lanjarón en 16 Marzo 2010, 11:47 am



Título: cuestionario php
Publicado por: lanjarón en 16 Marzo 2010, 11:47 am
le he dado muchas vueltas y no s e como soulicionarlo. os cuento

tengo un cuestionario donde cada input es un checkbox, (loo utilizo para una pregunta de verdadero-falso). cada input tiene un name="id[]" y un value="true" o false. lo q pasa  es como si el array almacenara primero las casillas marcadas (true) y las no marcadas las almacena al final. ejemplo
1 marcada
2 no marcada
3 marcada
4 no marcada

id[0]=marcada // valor true
id[1]=marcada // valor true
id[2]=no marcada // sin valor
id[3]=no marcada// sin valor

necesito almacenar en un array para luego comparar con los valores almacenados en la base de datos
gracias



Título: Re: cuestionario php
Publicado por: Castg! en 16 Marzo 2010, 13:58 pm
no comprendo las propiedades del checkbox. seria mucha molestia que pongas el codigo??


Título: Re: cuestionario php
Publicado por: lanjarón en 18 Marzo 2010, 10:47 am
<input type="checkbox" name="id1[]" value="TRUE" />opcion1
<input type="checkbox" name="id1[]" value="TRUE" />opcion2
<input type="checkbox" name="id1[]" value="TRUE" />opcion3
<input type="checkbox" name="id1[]" value="TRUE" />opcion4
-------------------------------
$id=$_POST['id1'];
for($i=0;$i<4;$i++){
 echo "iteracion".$i;
 echo $id[$i];
}
--------------------------------------

ejemplo

marco opcion2 y opcion4, me imprime:

iteracion0 TRUE
iteracion1 TRUE
iteracion2
iteracion3

debería aparecer
iteracion0
iteraacion1 TRUE
iteracion2
iteracion3 TRUE
¿por qye pasa esto?


Título: Re: cuestionario php
Publicado por: Castg! en 18 Marzo 2010, 13:57 pm
pero ponele distintos nombres, como por ejemplo:
Código
  1. <input type="checkbox" name="id1" value="TRUE" />opcion1
  2. <input type="checkbox" name="id2" value="TRUE" />opcion2
  3. <input type="checkbox" name="id3" value="TRUE" />opcion3
  4. <input type="checkbox" name="id4" value="TRUE" />opcion4

porq pensa que html no trabaja con arrays...

Código
  1. $id=array($_POST['id1'],$_POST['id2'],$_POST['id3'],$_POST['id4']);
  2. for($i=0;$i<4;$i++){
  3. echo "iteracion".$i;
  4. echo $id[$i];
  5. }

ahora tendria que ir mejor...


Título: Re: cuestionario php
Publicado por: lanjarón en 18 Marzo 2010, 14:05 pm
el problema es q el cuestionario es bastante largo y con varias opciones, tng una base de datos con las erespuestas, y lo que quería era hacer un bucle para implementarlo de una manera más sencilla

muchas gracias castg!


Título: Re: cuestionario php
Publicado por: Castg! en 18 Marzo 2010, 14:10 pm
denada, pero va a ser dificil hacerlo todo con el mismo nombre:S asi que te vas a tener que poner a cambiar todos :S


Título: Re: cuestionario php
Publicado por: fede_cp en 18 Marzo 2010, 14:42 pm
con javascript se peude hacer algo parecido con DOM, sacando de un mismo id, y haciendo arrays de ese id.


saludos! hay varias formas


Título: Re: cuestionario php
Publicado por: KrossPock en 21 Marzo 2010, 05:14 am
Podes meter a todas en un array con un bucle...

Por ejemplo:

tus checks se van a llamar id1, id2, id3, idn

Entonces despues harias algo asi:

Código
  1. <?php
  2. $checks=array();//checks ahora es un array vacio
  3. for($i=1;$i<=8;$i++){//en este caso serian 8 checkbox, por ello el numero 8, vos lo modificas dependiendo de el numero de checkboxs
  4. array_push($checks,$_GET["id$i"];//vamos agregando en el array todos los checks
  5. }
  6. ?>

Alli tendrias todos los checks en un array, no probe el code, pero me parece que deberia funcionar