Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: romanjr55 en 8 Mayo 2018, 01:28 am



Título: almacenar respuestas en array
Publicado por: romanjr55 en 8 Mayo 2018, 01:28 am
Hola amigos del foro, como siempre, les saludo y les pido por favor, me puedan ayudar con un problema que no he podido resolver y que me quiten de mi ignorancia, de antemano gracias por su ayuda y comentarios.

Estoy realizando un cuestionario para 5 personas en una solo pantalla (columna 1 pregunta, col.2 individuo 1, col.3 indiv.2....... col.6 indiv. 5) , en ese cuestionario, quiero guardar en un arreglo las respuestas de la pregunta 1 que corresponden a los 5 personajes por medio de un select, es decir:

$p1 debe almacenar Array (
  • => Si [1] => No [2] => talvez [3] => No [4] => Si )

y despues a cada respuesta asignarle un valor numerico en otro arreglo

$c1 debe almacenar Array (
  • => 2 [1] => 0 [2] => 1 [3] => 0 [4] => 2 )

asi mismo, la pregunta 2 es dicotomica por lo que se usa un checkbox para responder donde marca=1 sin marcar= 0 de tal forma que para la pregunta 2 quede

Array (
  • => 1 [1] => 0 [2] => 1 [3] => 1 [4] => 0 )

mis problemas son 3:
* el primero es que no puedo lograr cambiar los valores del arreglo de la pregunta 1 a valores numericos
* el segundo es que no puedo asignar el valor del checkbox sin marcar a 0, es decir, solo me cuenta los marcados como 1, por ende, en el ejemplo anterior, me da como resultado:
Array (
  • => 1 [1] => 1 [2] => 1 )
* y el tercero es que no puedo lograr que me conserve las respuestas del formulario, de tal forma que cuando presiono el boton submit deja en blanco las respuestas que ya se habian contestado

El conservarlas respuestas es porque supongamos que sean 20 preguntas obligatorias para los 5 individuos (100 respuestas) y se equivocan en la 15 del individuo 4 (no la responde) y el sistema al indicar que todas son obligatorias y que le faltan, no me gustaria que todo se borrasen y empezara de nuevo.

Se que para ustedes es un problema sencillo, pero a mi los arrays se me complican un poco, les anexo el codigo que tengo y que no me sale, y si por favor, me puedan indicarme en donde me estoy equivocando.
Por su apoyo y enseñanza, gracias.

codigo:

Código
  1. echo "<form action='' method='POST' name='res'>\n";  
  2. $dato=”abcd123”;
  3. $ciclo=2018 / 2019 (a);
  4. $respc=array('Si','No',’tal vez’,'');
  5.  
  6. $con="SELECT *  FROM base WHERE DATOS='$dato' and CICLO='$ciclo'";
  7. $reb=mysql_query($con) or die ("no se pudo consultar base");
  8. echo "<td>1.<td> Esta es una pregunta de varias opciones";
  9. $r=0;
  10. $r1=array();
  11. $c1=array();
  12. while ($filon3=mysql_fetch_array($reb3,MYSQL_ASSOC))
  13. {
  14. echo '<select name="r1[]" value="$r1[]" class="form-control" >';  
  15. for($x = 0; $x < count($respc); $x++)
  16. {
  17.  if($respc[$x] == $_POST['$r1[$r]']){$selected = ' selected';}
  18.  else{$selected = '';}          
  19.  echo '<option value="'.$respc[$x].'"'.$selected.'>'.$respc[$x].'</option>';
  20. }
  21. echo '</select>';
  22. if ($r1[$r]=="Si"){$c1[$r]=2;} if ($r1[$r]=="tal vez"){$c1[$r]=1;} if ($r1[$r]=="No"){$c1[$r]=0;} if ($r1[$r]==""){$c1[$r]="x";echo "<font color=#ff0000>*";echo"<font color=#000000></td>";}
  23. $r=$r+1;
  24. }
  25. $r1=$_POST['r1'];
  26. $c1=$_POST['c1'];
  27. echo "<tr><td><b>2.</b><td colspan=7 bgcolor=$celcolor1><b> Este es un grupo de preguntas:</b>";
  28. $r=0;
  29. $r2a=array();
  30. $c2a=array();
  31.  
  32. echo "<tr><td>a)<td> esta es una pregunta de chekmark";
  33. for($x = 0; $x < 5; $x++)
  34. {
  35. echo "<td align=center><input name='r2a[]' value=1 type='checkbox' class='form-control'  title='Al seleccionar la casilla esta respondiendo que SI, de lo contrario esta respondiendo que NO'> </td>";
  36. $r=$r+1;
  37. }
  38. $r2a=$_POST['r2a'];
  39. //botones de registro
  40. echo " <td><input type='submit' name='botonenv' value='Continuar a la parte 4' title='Continuar a la siguiente etapa'>";
  41. if (@$_POST['botonenv']=='Continuar a la siguiente etapa'')
  42. {
  43. //aquí va a grabar las respuestas
  44. xxxxxxxxxxxxxxx
  45. //esto lo puse para saber si me esta creando los arrays
  46. echo "<br> r1"; print_r($r1);
  47. echo "<br> c1"; print_r($c1);
  48. echo "<br> r2a"; print_r($r2a);
  49. echo "<br> c2a"; print_r($c2a);
  50. echo "<br>";
  51. }
  52. echo "</form>”;