Foros del Web » Programando para Internet » PHP »

Triple combobox anidado dinamico

Estas en el tema de Triple combobox anidado dinamico en el foro de PHP en Foros del Web. Buen dia foreros, tengo el siguiente script, pero no consigo que pase las variables: son 3 listbox ( o combobox) que se van cargando uno ...
  #1 (permalink)  
Antiguo 04/02/2008, 08:07
 
Fecha de Ingreso: mayo-2006
Mensajes: 124
Antigüedad: 17 años, 11 meses
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";
}
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:08.