Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema para capturar variables de un form

Estas en el tema de problema para capturar variables de un form en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente problema: un formulario html con campos que se muestran dinámicamente (es un ejercicio con un sistema de encuestas); sus ...
  #1 (permalink)  
Antiguo 02/08/2013, 08:47
 
Fecha de Ingreso: agosto-2013
Mensajes: 12
Antigüedad: 10 años, 9 meses
Puntos: 0
problema para capturar variables de un form

Hola a todos, tengo el siguiente problema: un formulario html con campos que se muestran dinámicamente (es un ejercicio con un sistema de encuestas); sus "names" y "values" están definidos en php, vienen de una tabla-objeto-método en el comienzo del mismo.

Tengo que capturar los "values" (respuestas de la encuesta) en el mismo formulario para enviarlos al php y alli colocarlos en una variable (para que mediante PDO pueda hacer un insert); lo intento con un campo "hidden" pero no consigo recibir el contenido en el archivo php.

La pregunta es: cómo capturar el contenido de dichos campos en el hidden diferenciando su name y value del de los tags en los que se escriben las respuestas?

No sé si fui claro, es una duda puntual, si alguien tiene alguna sugerencia, será bienvenida, gracias igualmente.
  #2 (permalink)  
Antiguo 02/08/2013, 09:32
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema para capturar variables de un form

muestra parte del código, por que no entendí del todo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 02/08/2013, 10:08
 
Fecha de Ingreso: agosto-2013
Mensajes: 12
Antigüedad: 10 años, 9 meses
Puntos: 0
Mensaje Respuesta: problema para capturar variables de un form

Bien, trataba de evitar el código para no hacerlo extenso pero no creo que sea posible, así que muestro secciones:

El formulario html:

Código HTML:
Ver original
  1. <?php
  2.     /*Si hay preguntas en la tabla, se muestran:*/
  3.     for ($i=0; $i<sizeof($preg); $i++)
  4.     {
  5.         if  (!empty($preg[$i]["op_1"]) and !empty($preg[$i]["op_2"]) and !empty($preg[$i]["op_3"]))
  6.         {
  7.     ?>
  8.         <!--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-->
  9.         <!--La pregunta.-->
  10.         <tr>
  11.             <td colspan="2"><?php echo $preg[$i]["pregunta"]; ?></td>
  12.         </tr>
  13.         <!--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-->
  14.         <!--Las opciones del "radiobutton", una de muestra nada más:-->
  15.         <tr>
  16.             <td><?php echo $preg[$i]["op_1"]; ?></td>
  17.             <td><input type="radio" name="<?php echo $preg[$i]["id_pregunta_encuesta"]; ?>" value="<?php echo $preg[$i]["op_1"]; ?>" /></td>
  18.         </tr>
El hidden que captura, en el mismo formulario (obviamente):

Código HTML:
Ver original
  1. <input type="hidden" name="<?php echo 'preg_'.$i; ?>" value="<?php echo $preg[$i]['id_pregunta_encuesta']; ?>" />


En el método del archivo php que captura las variables lo siguiente funciona:

Código PHP:
Ver original
  1. for ($i=0; $i<$_POST["cant_preg"]; $i++)
  2.     {
  3.         echo "preg_".$i."----".$_POST[$_POST["preg_$i"]]."<br />";
  4.     }

Pero cuando trato de colocar los $_POST en variables, no logro hacer que se muestren:

Código PHP:
Ver original
  1. $d_1    = isset($_POST['preg_$i']);
  2. $d_2    = isset($_POST[isset($_POST['preg_$i'])]);
  3.  
  4. echo $d_1;
  5. echo $d_2;

… y no muestra $d_1 ni $d_2.
El ejercicio está hecho en el videotutorial 54 de César Cancino, pero él lo hace sin PDO, yo lo pasé todo a PDO, y hasta acá me funciona ok, pero me trabé con esto y no logro resolverlo...

Última edición por zhenher; 02/08/2013 a las 10:16
  #4 (permalink)  
Antiguo 02/08/2013, 11:24
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: problema para capturar variables de un form

Hola, isset() te evalua la variable y arroja TRUE,FALSE

http://php.net/manual/es/function.isset.php

QUITA ISSET.
$d_1 = isset($_POST['preg_$i']);

TAMBIEN PUEDES VER CUAL ES EL VALOR DE TU VARIABLE CON VAR_DUMP().

http://php.net/manual/es/function.var-dump.php

VAR_DUMP($d_1);

Espero te sea de ayuda.
  #5 (permalink)  
Antiguo 02/08/2013, 11:46
 
Fecha de Ingreso: agosto-2013
Mensajes: 12
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: problema para capturar variables de un form

Hola Erick_MD9, gracias por la respuesta, no conocía bien a var_dump, muy útil la función ,la voy a aprovechar de a poco.

El problema es que al quitar "isset" me da "undefined index: preg_$i in etc...", tampoco entendía bien el return de isset.

Y al usar var_dump me dan las dos como NULL. Voy a seguir probando.
  #6 (permalink)  
Antiguo 02/08/2013, 15:38
 
Fecha de Ingreso: agosto-2013
Mensajes: 12
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: problema para capturar variables de un form

Ya lo solucioné, estaba tratando ingresar datos fuera del "for", por eso no podía definir las variables... ya pude hacer los insert y funciona todo ok (suspendí la carta documento a Rasmus al detectar que el problema estaba entre el teclado y la silla), gracias por la ayuda igualmente.

Saludos!

Etiquetas: form, formulario, html, tabla, variable, variables
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 08:41.