Foros del Web » Programando para Internet » PHP »

Consulta Sobre variables en un formulario

Estas en el tema de Consulta Sobre variables en un formulario en el foro de PHP en Foros del Web. Tengo este script para seleccionar en un combo y que se actualice un segundo dependiendo de lo que se selecciono en el primero. Anda de ...
  #1 (permalink)  
Antiguo 14/10/2004, 20:18
Avatar de roswell  
Fecha de Ingreso: abril-2004
Ubicación: Buenos Aires
Mensajes: 80
Antigüedad: 20 años
Puntos: 0
Consulta Sobre variables en un formulario

Tengo este script para seleccionar en un combo y que se actualice un segundo dependiendo de lo que se selecciono en el primero. Anda de maravillas.

Código PHP:
<?php
if (!empty($_POST['Submit'])){


// Procesar el formulario ...
echo "Procesando formulario:<br>";
$tipo=$_POST['id_padre'];

echo 
"$tipo";

} else {

   
// Obtener el $id_padre del envio a si mismo del formulario ..
   
$id_padre=$_POST['id_padre'];

   
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
//   echo "<form name=\"uno\" action=\"procesa.php\" method=\"POST\">\n\n";
   
echo "<form name=\"uno\" action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";

   
// Formar Selec "Padre".
   
echo "<select class=\"login\" name=\"id_padre\" onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\"> Seleccione un Item </option>\n";

   
$SQLconsulta_padre="SELECT * FROM tabla_padre";
   
$consulta_padre mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());

   While   (
$registro_padre=mysql_fetch_assoc($consulta_padre  )){
      
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
      // Se selecciona en consecuencia (selected) la opción elegida.
      
if ($id_padre == $registro_padre['id']){
         echo 
"<option value=\"".$registro_padre['id']."\" selected>".$registro_padre['item_texto']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_padre['id']."\">".$registro_padre['item_texto']."</option>\n";
      }
    }
   echo 
"</select>\n\n";

   
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

   // Formar Select "Hijo"
   
echo "<select class=\"login\" name=\"id_hija\">\n";

   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
   // se muestra el mensaje de "seleccine un item" (del select padre).
   
if (!empty($id_padre)){

       
$SQLconsulta_hija="SELECT * FROM tabla_hija WHERE id_padre='$id_padre'";
       
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
       
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
       
if (mysql_num_rows($consulta_hija) != 0){
          While   (
$registro_hija=mysql_fetch_assoc($consulta_hija))  {
            echo 
"<option value=\"".$registro_hija['cod']."\">".$registro_hija['item_texto']."</option>\n";
          }
        } else {
            echo 
"<option value=\"\"> No hay registros para este Item </option>";
        }
    } else {
        echo 
"<option value=\"\"> Elegir </option>";
    }

    
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
    
echo "</select>\n\n";

    echo 
"       <INPUT TYPE='submit' name='Submit' VALUE='"._SEND."'>&nbsp;&nbsp;&nbsp;<INPUT TYPE='reset' VALUE='"._RESET."'>";

    }
?>
Como decia anda bien pero en este script hay que trabajar en el mismo archivo para armar como se van a mostrar los resultados y yo quiero enviarlos a un archivo llamado results.php y no pude hacer que me tome las variables, no pude pasarlas bien.

Alguien me podria indicar como seria la manera acertada para enviar estos datos a otro archivo para ahi ser mostradas.

Muchas gracias
  #2 (permalink)  
Antiguo 15/10/2004, 06:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En realidad .. lo que deberías es usar el código de tu "result.php" bajo el IF() de:

// Procesar el formulario ...
echo "Procesando formulario:<br>";
$tipo=$_POST['id_padre'];

echo "$tipo";

En ese punto deberías usar tu código de result.php .. ese "result.php" podrías llamarlo con un include() y en tu código de result .. usar el $tipo como variable.

De todas formas .. si deseas "reeenviar" esa variable hacia result.php .. podrías hacerlo:

heade ("Location: result.php?tipo=$tipo");
exit;

y en result.php la recibirías en el array superglobal GET:

$_GET['tipo']

Un saludo,
  #3 (permalink)  
Antiguo 15/10/2004, 20:09
Avatar de roswell  
Fecha de Ingreso: abril-2004
Ubicación: Buenos Aires
Mensajes: 80
Antigüedad: 20 años
Puntos: 0
Muchas Gracias, me funciona perfectamente e inclusive me anda bien la paginación ya que antes no propagaba las variables mediante URL y se hacia medio lio.

Saludos y Gracias
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 14:24.