Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/09/2009, 21:20
Avatar de manumaf
manumaf
 
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 17 años, 6 meses
Puntos: 6
Problema con listas dependientes.

Hola, utilice este codigo para crear un par de listas dependientes: http://www.forosdelweb.com/664999-post108.html.

Yo lo edite para que funcione con mis tablas pero surgio un problema que no lo puedo reparar, los resultados que me devuelve $_POST['id_padre'] y $_POST['id_hija'] son:
$_POST['id_padre'] = 4 (o algun otro numero)
$_POST['id_hija'] = "" (osea nada)

Asi me quedo el código ami editado:
Código PHP:
<?php
//conexión a mysql

if (!empty($_POST['enviado'])){

echo 
"Procesando formulario:<br>";
echo 
"Recibido id_tabla_padre: ".$_POST['id_padre']."<br>";
echo 
"Recibido id_tabla_hija: ".$_POST['id_hija'];

} 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'];

   echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";

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

   
$SQLconsulta_padre="SELECT * FROM lenguajes";
   
$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['lenguaje']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_padre['id']."\">".$registro_padre['lenguaje']."</option>\n";
      }
    }
   echo 
"</select>\n\n";

   
mysql_free_result($consulta_padre); 
 
   echo 
"<select name=\"id_hija\">\n";

   if (!empty(
$id_padre)){

       
$SQLconsulta_hija="SELECT * FROM categorias WHERE id_lenguaje ='$id_padre'";
       
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
 
       if (
mysql_num_rows($consulta_hija) != 0){
          While   (
$registro_hija=mysql_fetch_assoc($consulta_hija)){
            echo 
"<option value=\"".$registro_hija['id']."\">".$registro_hija['categoria']."</option>\n";
          }
        } else {
            echo 
"<option value=\"\"> No hay registros para este Item </option>";
        }
    } else {
        echo 
"<option value=\"\"> <-- Seleccione un Item  </option>";
    }

    
mysql_free_result($consulta_hija); 
    
    echo 
"</select>\n\n";
    echo 
"<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
    echo 
"</form>\n";

?>
Las estructuras de mis tablas son iguales a las del script original:

Lenguajes:
id / lenguaje
1 / lenguaje 1
2 / lenguaje 2

Categorias:
categoria / id_lenguaje
categoria 1 / 2
categoria 2 / 1


Cual es el problema?
Muchas gracias de antemano