Foros del Web » Programando para Internet » PHP »

Procesando formularios con paso de variables

Estas en el tema de Procesando formularios con paso de variables en el foro de PHP en Foros del Web. Hola a todos, Escribo para pedir su ayuda en lo siguiente: Tengo dos select, el segundo me entrega una lista de opciones asociadas a archivos ...
  #1 (permalink)  
Antiguo 13/03/2009, 00:18
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 10 años, 10 meses
Puntos: 1
Procesando formularios con paso de variables

Hola a todos,

Escribo para pedir su ayuda en lo siguiente: Tengo dos select, el segundo me entrega una lista de opciones asociadas a archivos que quiero desplegar en una página diferente. En ambas tengo scripts PHP y conseguí que la aplicación funcione bien... Bueno, no tanto; porque ahora consigo pasar sólo una opción para la segunda página y necesito que sea múltiple. Ayudénme por favor...

La parte de código asociada a los select es ésta (primera página):

Código php:
Ver original
  1. <!-- Manual de PHP de WebEstilo.com -->
  2. <form name="form1" method="post" action="recibeS.phtml">
  3.   <select name="selector1" id="selector1" onChange="javascript:Seleccionar();">
  4.     <option value="null"<?php if (empty($sel1)) { echo " selected"; }
  5.     ?>>Seleccione un valor</option>
  6.     <option value="AR"<?php if ($sel1 == "AR") { echo " selected"; }
  7.     ?>>Argentina</option>
  8.     <option value="MX"<?php if ($sel1 == "MX") { echo " selected"; }
  9.     ?>>México</option>
  10.     <option value="CO"<?php if ($sel1 == "CO") { echo " selected"; }
  11.     ?>>Colombia</option>
  12.   </select>
  13. // el select dependiente, lo relleno con información contenida en un archivo txt.
  14.   <select name="selector2" id="selector2">
  15. <?php
  16.   if ($fillsel2) {
  17.     $contentsel2 = explode("*",$contentsel2);
  18.     foreach($contentsel2 as $key => $value) {
  19.       $item = explode(":",$value);
  20.       echo '<option value="'.$item[0].'">'.$item[1].'</option>'."\n";
  21.     } // foreach
  22.   } // if
  23.   else {
  24. ?>
  25.     <option value="null" selected>(Vacío)</option>
  26. <?php } ?>
  27.   </select>
  28.   <input type="submit" name="Submit">
  29. </form>

Esta es la página que recibe la variable y procesa el despliegue del archivo asociado a la opción que se haya elegido (funciona bien, pero sólo para una opción):
Código php:
Ver original
  1. <!-- Manual de PHP de WebEstilo.com -->
  2. <html>
  3. <head>
  4.    <title>Ejemplo de PHP</title>
  5. </head>
  6. <body>
  7. </body>
  8. <H1>Ejemplo de procesado de formularios</H1>
  9.  
  10. <?php
  11.         include $_GET['selector2']; <br>
  12. ?>
  13.  
  14. </html>
  #2 (permalink)  
Antiguo 13/03/2009, 00:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 7 meses
Puntos: 836
Respuesta: Procesando formularios con paso de variables

No entendí muy bien, ¿quieres que en un mismo select puedan seleccionarse varias opciones? En ese caso debe ser múltiple (multiple="multiple").

¿O no sabes cómo recoger el valor de dos select?:
Código php:
Ver original
  1. echo $_GET['selector1'];
  2. echo $_GET['selector2'];
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/03/2009, 00:28
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Procesando formularios con paso de variables

Hola amigo,

Gracias por responder... Ahora se un poco más que hace un mes, estoy aprendiendo. El segundo select debe ser múltiple (creo que esto lo puedo hacer), el problema es cómo debe ser el script en la página que recibe para que me haga un include por cada opción seleccionada.
  #4 (permalink)  
Antiguo 13/03/2009, 00:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 7 meses
Puntos: 836
Respuesta: Procesando formularios con paso de variables

Agrega corchetes al name (name="selector2[]"), luego para procesar los valores seleccionados recorres con un foreach:
Código php:
Ver original
  1. foreach ($_POST['selector2'] as $value) {
  2.     include $value;
  3. }
Bueno, debes tener en cuenta que esa forma de incluir no es nada segura .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 13/03/2009, 00:53
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Procesando formularios con paso de variables

Hice los cambios y probé distintas colocaciones del código que sugieres, pero el resultado siempre arroja error:

Código php:
Ver original
  1. Warning: include(Array) [function.include]: failed to open stream: No such file or directory in C:\Servidor\WEB\Otro5\recibeS.phtml on line 9
  2.  
  3. Warning: include() [function.include]: Failed opening 'Array' for inclusion (include_path='.;C:\php5\pear') in C:\Servidor\WEB\Otro5\recibeS.phtml on line 9
  #6 (permalink)  
Antiguo 13/03/2009, 01:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 14 años, 7 meses
Puntos: 836
Respuesta: Procesando formularios con paso de variables

El error es claro, no existe ningún archivo a incluir con el nombre que tienes en el value de la opción seleccionada.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 13/03/2009, 06:09
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Procesando formularios con paso de variables

Era exactamente eso David... estaba apuntando a otro archivo. Solucionado

Muchisimas gracias por tu ayuda
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 04:05.