Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/02/2008, 08:07
gutibs
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 18 años
Puntos: 0
Triple combobox anidado dinamico

Buen dia foreros, tengo el siguiente script, pero no consigo que pase las variables:

son 3 listbox ( o combobox) que se van cargando uno segun la seleccion del primero, pero el tercer listbox no se llena, y cuando le doy al boton enviar, me mustra olo la variable de la provincia....
Alguien me da una mano?

muchas gracias.

aca va el codigo


<?php


// datos de conexion a la BD.
$servidor = "localhost"; // host
$usuario = "root";
$clave = "";
$basedatos = "medcom"; // 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['id_padre']."<br>";
echo "Recibido id_tabla_hija: ".$_POST['id_hija']."<br>";
echo "Recibido id_tabla_nieta: ".$_POST['id_nieta'];

} 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 ..
if(isset($_POST['id_padre'])){
$id_padre=$_POST['id_padre'];
}

if(isset($_POST['id_hija'])){
$id_hija=$_POST['id_hija'];
}

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

echo "<select class= input name=\"id_padre\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione una Provincia </option>\n";

$SQLconsulta_padre="SELECT * FROM provincias ORDER BY Provincia ";
$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['IdProvincia']){
echo "<option value=\"".$registro_padre['IdProvincia']."\" selected>".$registro_padre['Provincia']."</option>\n";
} else {
echo "<option value=\"".$registro_padre['IdProvincia']."\">".$registro_padre['Provincia']."</option>\n";
}
}
echo "</select>\n\n";

mysql_free_result($consulta_padre);

// Formar Select "Hijo"
echo "<select name=\"id_hija\" onChange=\"this.form.submit()\">\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 departamentos WHERE IdProvincia='$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['state_id']."\">".$registro_hija['name']."</option>\n";
if ($id_hija == $registro_hija['iddepartamento']){
echo "<option value=\"".$registro_hija['iddepartamento']."\" selected>".$registro_hija['nombredepartamento']."</option>\n";
} else {
echo "<option value=\"".$registro_hija['iddepartamento']."\">".$registro_hija['nombredepartamento']."</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";


// Formar Select "Nieto"
echo "<select name=\"id_nieta\">\n";
//echo "<select name=\"id_nieta\" onChange=\"this.form.submit()\">\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_hija)){

$SQLconsulta_nieta="SELECT * FROM localidades WHERE IdDepartamento='$id_hija'";
$consulta_nieta = mysql_query($SQLconsulta_nieta,$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_nieta) != 0){
While ($registro_nieta=mysql_fetch_assoc($consulta_nieta )) {
echo "<option value=\"".$registro_nieta['idlocalidad']."\">".$registro_nieta['nombrelocalidad']."</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_nieta); // Liberar memoria usada por consulta.

echo "</select>\n\n";

echo "<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
echo "</form>\n";
}
?>