Ver Mensaje Individual
  #8 (permalink)  
Antiguo 17/05/2012, 08:00
ariochy11053
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba, Pinar del Río
Mensajes: 82
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Almacenar valores de radio button de formulario y pasarlos a otro formular

Cita:
Iniciado por ariochy11053 Ver Mensaje
enlinea777, mira hago lo siguiente y no me sale.

Primero declaro en el inicio de la página
Código PHP:
Ver original 

luego en el primer formulario hago una consulta a mi base de datos para que me devuelva unas preguntas con sus id, esas preguntas les quiero poner a cada una 7 radio button con valores de 1 hasta 7 y el usuario debe evaluarlas, los radios button se me generan de la siguiente forma>

Código PHP:
Ver original
  1. $sql1="select num_preg, preg_percep from preguntas where id_aspecto='$mrow->id_aspecto'";
  2. $result1=mysql_query($sql1,$link);
  3. while ($mrow1=mysql_fetch_object($result1)){
  4.   //$id_pregunta    =$mrow1->id_pregunta;
  5.   $num_preg =$mrow1->num_preg;
  6.   $preg_percep  =$mrow1->preg_percep;
  7.  
  8.   //Aqui declaro la variable de session que quiero que tenga el nombre de los radios
  9.   $_SESSION['radios']="mk_$num_preg";
  10.  
  11.   echo "<tr>";
  12.   echo "<td>$num_preg<input type='hidden' name='n_$num_preg' value='$num_preg'></td>";
  13.   echo "<td align='left'>$preg_percep<input type='hidden' name='p_$num_preg' value='$num_preg'></td>";
  14.   echo "<td align='center'><input type='radio' name='mk_$num_preg' value='1' tabindex='2'></td>";
  15.   echo "<td align='center'><input type='radio' name='mk_$num_preg' value='2' tabindex='2'></td>";
  16.   echo "<td align='center'><input type='radio' name='mk_$num_preg' value='3' tabindex='2'></td>";
  17.   echo "<td align='center'><input type='radio' name='mk_$num_preg' value='4' tabindex='2'></td>";
  18.   echo "<td align='center'><input type='radio' name='mk_$num_preg' value='5' tabindex='2'></td>";
  19.   echo "<td align='center'><input type='radio' name='mk_$num_preg' value='6' tabindex='2'></td>";
  20.   echo "<td align='center'><input type='radio' name='mk_$num_preg' value='7' tabindex='2'></td>";                  
  21.   echo "</tr>";
  22.  }

Voy a marcar en el formulario los valores:
3 para la pregunta 1
3 para la pregunta 2
6 para la pregunta 3
7 para la pregunta 4

Y lo que quiero almacenar son los valores marcados en rojo, claro cuando envíe el segundo formulario, que es donde esta el problema porque no se como referirme al nombre de los radios que he marcado, si uso la variable
Código PHP:
Ver original
  1. $_SESSION['radios']
, para visualizar si al formulario 2 llegan todos esos datos, solo me devuelve el ultimo valor.

Por favor que tengo mal, digo, si lo que estoy haciendo esta bien, disculpa tanta torpeza.

Saludos
Mantuve el mismo código, para el caso del primer formulario, luego el caso del 2do formulario añadi estas lineas:
Código PHP:
Ver original
  1. $sql33="select num_preg from preguntas";
  2.      $result33=mysql_query($sql33,$link);
  3.        while ($mrow33=mysql_fetch_object($result33)){
  4.         //$id_pregunta  =$mrow->id_pregunta;
  5.         $num_preg       =$mrow33->num_preg;
  6.         $mk ="mk_".$num_preg;      
  7.         if (!empty($$mk)){
  8.          $_SESSION['radio']=$$mk;
  9.          echo "<input type='hidden' name='radios_env_$num_preg' value='".$_SESSION['radio']."'>";        
  10.         }
  11.        }
y con esto me llegaban al formulario, campos ocultos con los valores de los radios que habia seleccionado en el primer formulario, luego antes de insertar en la base de datos ambos resultados, hago lo siguiente:
Código PHP:
Ver original
  1. $sql="select num_preg from preguntas";
  2.    $result=mysql_query($sql,$link);
  3.    while ($mrow=mysql_fetch_object($result)){
  4.     $num_preg   =$mrow->num_preg;
  5.     $m      ="m_".$num_preg;
  6.     $n      ="n_".$num_preg;
  7.     $rad_env     ="radios_env_".$num_preg;
  8.    
  9.     if (!empty($$m)){
  10.      //Visualizo para comprobar que me llegan los primeros datos entrados
  11.      echo $rad_env;
  12.     //realizo la conslta d einserccion en la base datos
  13.      $sql1="insert into encuestas_expec (fecha,id_letra,id_num_enc,num_preg,expec,percep)
  14.            values ('$fecha','$id_letra','$id_num_enc','".$$n."','".$$m."','".$$rad_env."')";
  15.      $result1=mysql_query($sql1,$link);
  16.     }
  17.    }

Quizas esta no se la mejor solución, pero me ha resulto el problema, por favor cualquier detalle decirmelo, para poder perfeccionarlo.

Saludos.

Última edición por ariochy11053; 17/05/2012 a las 08:05 Razón: arreglando una parte del codigo