Foros del Web » Programando para Internet » PHP »

Recolectar el valor de varios radio button

Estas en el tema de Recolectar el valor de varios radio button en el foro de PHP en Foros del Web. Hola. En principio pido disculpas ya que este es mi primer post y ya los estoy molestando con consultas. Espero comenzar a participar activamente de ...
  #1 (permalink)  
Antiguo 01/07/2004, 10:50
Avatar de Kriminal  
Fecha de Ingreso: julio-2004
Ubicación: Buenos Aires
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Recolectar el valor de varios radio button

Hola. En principio pido disculpas ya que este es mi primer post y ya los estoy molestando con consultas. Espero comenzar a participar activamente de esta comunidad, ya que noto que es muy productiva.

Al grano:
Estoy desarrollando una aplicación que hace lo siguiente:
- Es un sistema de evaluaciones online, por medio de documentos xml
- Al usuario le aparecen X número de unidades al comienzo, para que elija cuales de ella quiere ser evaluado. Notese que puede elegir cuantas unidades quiera y las preguntas le saldrán randomizadas de las unidades elegidas
- Luego, puede elegir cuantas preguntas quiere que se le hagan

Con todo eso armo un array y las preguntas aparecen en un formulario. Como es multiple choice, por medio de radio buttons elige las respuestas, y luego se procesa en la pagina siguiente.

Bueno, estoy trabado justo en el paso entre la eleccion de las respuestas y el procesado de las mismas.

Para el primer form, tengo este código:

Código PHP:
echo "<form name='form_04' method='post' action='examen.php?paso=5&p=".$cantidad_preguntas."'>
      <table width='200'>"
;
      for (
$i=1$i <= $cantidad_preguntas$i++){
      echo 
"<tr><td>".$final[$i]['pregunta']."</td></tr>
      <tr><td><label><input type='radio' name='"
.$final[$i]['id']."' value='1'>".$final[$i]['re1']."</label></td></tr>
      <tr><td><label><input type='radio' name='"
.$final[$i]['id']."' value='2'>".$final[$i]['re2']."</label></td></tr>
      <tr><td><label><input type='radio' name='"
.$final[$i]['id']."' value='3'>".$final[$i]['re3']."</label></td></tr>
      <tr><td><label><input type='radio' name='"
.$final[$i]['id']."' value='4'>".$final[$i]['re4']."</label></td></tr>
      </tr>
      <tr><td>&nbsp;</td></tr>"
;
      }
echo 
"
<tr><td><input type='submit' name='Submit' value='Enviar'></td></tr>
</form> 
La variable $cantidad_preguntas surge de un count del array de preguntas y la paso por el método GET para volver a utilizarla en la siguiente página. Ya se que no es el mejor método, pero todavía no le encuentro la vuelta a las variables globales y eso.
No importa: el tema son estas dos variables:
$final[$i]['id'] (es el número de pregunta del array). Notese que tengo que usarla así porque no puedo poner algo estático tipo "pregunta1" ya que el array de preguntas se arma dinámicamente de acuerdo a lo que el usuario elija.
Las variables $final[$i]['re1], $final[$i]['re2], $final[$i]['re3], $final[$i]['re4'] contienen la respuesta elegida, y eso es lo que quiero que recoja la siguiente página para evaluarla.

A modo de prueba, en la siguiente página puse el codigo que sigue para ver si las variables llegan:

Código PHP:
$cantidad_preguntas $_GET['p'];

for (
$i=1$i <= $cantidad_preguntas$i++){
if (isset(
$final[$i]['id']))
{
$respuesta[$i]['id']= $final[$i]['id'];
echo 
"Pregunta: ".$respuesta[$i]['id'];
}
else echo 
"No contestada";
echo 
"<br/>";


Obviamnete eso no es lo que pretendo que haga y además faltan variables, encuentro ante el problema que no sé como demonios pasarlas.
Sé que tendría que usar $_POST en algun lado, pero en codigos anteriores no lo usé para recoger los datos de un form y funcionó igual.

En fin, si me pudieran ayudar aunque no sea con este código sino con alguno que se le parezca, estaría muy agradecido.

El punto es (y perdon que sea redundante): ¿como paso los valores de variables de una matriz o array multidimensional a otra página?

Muchas gracias desde ya,

Última edición por Kriminal; 01/07/2004 a las 11:10
  #2 (permalink)  
Antiguo 01/07/2004, 12:58
Avatar de Kriminal  
Fecha de Ingreso: julio-2004
Ubicación: Buenos Aires
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Ya está, ya lo descubri: el problema es que no se puede poner esto en el name:
name='".$final[$i]['id']." como si fuera una concatenación común; pero si lo pongo así:
name='final[$i]' viaja perfectamente.

Muchas gracias igual, porque aunque este tema no tuvo respuestas encontré la solución viendo post anteriores de ustedes.

Saludos!
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 13:45.