Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/10/2008, 05:00
No-NaMe
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 10 meses
Puntos: 4
De acuerdo Respuesta: [Duda] Formularios conflictivos

antes de que se me olvide (por mas tiempo) aqui os dejo como lo e solucionado y este script como aporte para lo que os pueda servir.

Muchas gracias a jaronu, por hacerme pensar y plantearme las preguntas correctas para llegar a la solucion.

Bien e separado los dos formularios para que no tengan conflictos entre ellos y e incluido los campos ocultos para que recivan esta informacion en el segundo formulario.
Paso a esplicaros como funciona todo este tema de lista.php

Código PHP:
<?php
$servidor  
="localhost"//Servidor al que se va a conectar, normalmente localhost
$usuario   ="root";  // Usuarios de la base de datos
$clave     ="123456"// Calve de la base de datos
$basedatos ="erp"// Base de datos sobre la que vamos a trabjar
if (!empty($_POST['enviado'])){ //con esto es cuando nos distinge lo que hay que mostrar, si tiene que mostrarnos ya el resultado o seguir con las elecciones.

echo "Procesando formulario:<br>";
echo 
"Recibido id_departamentos: ".$_POST['id_padre']."<br>";
echo 
"Recibido id_areas: ".$_POST['id_hija']."<br>";
echo 
"Recibido id_profesores: ".$_POST['id_hija2'];

} else {
   
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error());
   
mysql_select_db($basedatos$conexion) or die(mysql_error());
   
$id_padre=$_POST['id_padre']; //aqui recivimos los distintos valores de los campos
   
$id_hija=$_POST['id_hija'];
   
$id_hija2=$_POST['id_hija2'];
   
$id_padre=$departamento;
   
$id_hija=$area;
   
$id_hija=$profesor;
echo 
"$id_padre<br>$id_hija<br>$id_hija2";
   echo 
"<form name=\"self\" action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n"
   echo 
"<select name=\"id_padre\" onChange=\"this.form.submit()\">\n";//Con esto hacemos que se ejecute sobre si mismo cuando cambia el valor
   
echo "<option value=\"\"> Seleccione un Item </option>\n";
   
$SQLconsulta_padre="SELECT * FROM departamentos";
   
$consulta_padre mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());
   While   (
$registro_padre=mysql_fetch_assoc($consulta_padre)){
      if (
$id_padre == $registro_padre['id']){
         echo 
"<option value=\"".$registro_padre['id']."\" selected>".$registro_padre['nombre']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_padre['id']."\">".$registro_padre['nombre']."</option>\n";}
    }
   echo 
"</select>\n\n";

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

// Formar Select "Hijo" hace casi exactamente lo mismo que el padre, mirarlo un poco por encima y si habeis entendido el padre este no os dara problemas.
   
echo "<select name=\"id_hija\" onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\"> Seleccione un Item </option>\n";
   if (!empty(
$id_padre)){
       
$SQLconsulta_hija="SELECT * FROM areas WHERE dependencia='$id_padre'";
       
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
    While   (
$registro_hija=mysql_fetch_assoc($consulta_hija)){
          if (
$id_hija == $registro_hija['id']){
         echo 
"<option value=\"".$registro_hija['id']."\" selected>".$registro_hija['nombre']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_hija['id']."\">".$registro_hija['nombre']."</option>\n";}
    }
   echo 
"</select>\n\n";}

    
mysql_free_result($consulta_hija);

   echo 
"<select name=\"id_hija2\" onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\"> Seleccione un Item </option>\n";
   if (!empty(
$id_hija)){
       
$SQLconsulta_hija2="SELECT * FROM profesores WHERE dependencia='$id_hija'";
       
$consulta_hija2 mysql_query($SQLconsulta_hija2,$conexion) or die(mysql_error());
    While   (
$registro_hija2=mysql_fetch_assoc($consulta_hija2)){
          if (
$id_hija=$_POST['id_hija'] == $registro_hija2['id']){
         echo 
"<option value=\"".$registro_hija2['id']."\" selected>".$registro_hija2['nombre']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_hija2['id']."\">".$registro_hija2['nombre']."</option>\n";}
    }
   echo 
"</select>\n\n";}

    
mysql_free_result($consulta_hija2);
    
    echo 
"</select>\n\n";
    echo 
"<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
    echo 
"</form>\n";} 
?>
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.

Última edición por No-NaMe; 31/10/2008 a las 05:34 Razón: No era el codigo definitivo y contenia errores, perdonen las molestias, no me di cuenta.