Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/09/2009, 23:00
Avatar de zerpico_01
zerpico_01
 
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 10 meses
Puntos: 13
Respuesta: Problema con listas dependientes.

estem creo que tal vez la cosa mejore asi pero no estoy seguro

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'];
?>
  <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

 <select name="id_padre" onChange="this.form.submit()">
  <option value=""> Seleccione un Item </option>
<?php
   $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']){
        
?>
        <option value="<?php echo $registro_padre['id'?>" selected><?php echo $registro_padre['lenguaje']; ?></option>
        <?php
      
} else { ?>
<option value="<?php $registro_padre['id'];?>"><?php echo $registro_padre['lenguaje'];?></option>
    <?php
      
}
    } 
?>
   </select>
<?php
   mysql_free_result
($consulta_padre); 
 
?>
<select name="id_hija">
<?php
   
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)){
          
?>
<option value="<?php echo $registro_hija['id'];?>"><?php echo $registro_hija['categoria'];?></option>
<?php
          
}
        } else { 
?>
        
 <option value=""> No hay registros para este Item </option><?php
        
}
    } else {
    
?>
<option value=""> -- Seleccione un Item -- </option>
<?php
    
}

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

?>
igualmente creo que habria que incorporar un sentencia del tipo:

if(trim($registro_padre['id'])==trim($registro_padre))

en vez de esto

if (mysql_num_rows($consulta_hija) != 0)


Nota : el uso de echo "<algo....." o sea echo html hace que tu codigo sea menos optimo
te lo digo yo que lo acabo de leer

me olvidaba encaja <br> donde necesites me olvide....
saludos!!

Última edición por zerpico_01; 28/09/2009 a las 23:06