Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2005, 17:26
DUDO_DE_ADRIANA
 
Fecha de Ingreso: agosto-2005
Mensajes: 159
Antigüedad: 18 años, 9 meses
Puntos: 0
Error en Listas Dependientes -Sencillo -

Tengo estas tablas:



Y uso este code para las listas desplegables, pero no me funciona, em sale que "No hay ningún Item Seleccionado"

Código PHP:
<? 
// datos de conexion a la BD. 
$servidor ="localhost"// host 
$usuario ="root"
$clave     =""
$basedatos ="listas"// Indicar una Base de datos. 
// si se ha pulsao el boton enviar ($enviado) se procesa el formulario .. 
// Sino, se continua con el formulario y los nuevos valores de los Select .. 
// OJO si se tienen mas varibles (mas <input> ) se van a perder sus valores a no ser 
// que los obtengamos y se les de como valor inicial en el value= de cada uno segun corresponda. 
if (!empty($_POST['enviado'])){ 
// Procesar el formulario ... 
echo "Procesando formulario:<br>"
echo 
"Recibido id_tabla_padre: ".$_POST['country_id']."<br>"
echo 
"Recibido id_tabla_hija: ".$_POST['state_id']; 
} else { 
// Conexión a la BD 
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error()); 
mysql_select_db($basedatos$conexion) or die(mysql_error()); 
// Obtener el $id_padre del envio a si mismo del formulario .. 
$id_padre=$_POST['country_id']; 
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script). 
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n"
// Formar Selec "Padre". 
echo "<select name=\"country_id\" onChange=\"this.form.submit()\">\n"
echo 
"<option value=\"\"> Seleccione un Item </option>\n"
$SQLconsulta_padre="SELECT * FROM countries"
$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['name']."\" selected>".$registro_padre['name']."</option>\n"
     } else { 
         echo 
"<option value=\"".$registro_padre['name']."\">".$registro_padre['name']."</option>\n"
     } 
    } 
echo 
"</select>\n\n"
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta. 
// Formar Select "Hijo" 
echo "<select name=\"state_id\">\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 states WHERE country_id='$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['name']."\">".$registro_hija['name']."</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); // Liberar memoria usada por consulta. 
 
    
echo "</select>\n\n"
    echo 
"<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n"
    echo 
"</form>\n"

?>