Combos dinámicos

El cual al seleccionar un elemento, otros combos subsecuentes cambien se contenido, por ejemplo
Si selecciono en el combo de país Mexico, en otro me aparezcan después los estados de Mexico y al seleccionar un estado me muestre en otro de abajo las ciudades.
Todo esto lo cojo de una BD.
Mil gracias. Pavel

1 respuesta

Respuesta
1
Como la explicación podría ser muy larga, te voy a poner un código que te puede servir. Luego lo adaptas a tus necesidades:
<html> <head> <title> Titulo </title> </head>
<body>
<?php
if( !isset($_POST['Enviar']) ){
$idDB = @mysql_connect('localhost', '', '');
@mysql_select_db('BaseDatos', $idDB) ) {
echo "<form name='fo' method='POST'>";
// COMBO PAISES
$consulta = "SELECT Nombre FROM Paises";
$resultado = mysql_query($consulta, $idDB);
echo "Pais: <SELECT NAME='pais'>";
$contadorPais = 1;
while ($fila = mysql_fetch_array($resultado))
{
echo "<OPTION id='Pais". $contadorPais++ . "' value=".$fila['Nombre']>". $fila['Nombre']. " </OPTION>";
}
echo "</SELECT>";
// COMBO ESTADOS
if ( (isset($_POST['pais'])) ) {
$consulta = "SELECT Nombre FROM Estados WHERE Pais=". $_POST['Pais'];
$resultado = mysql_query($consulta, $idDB);
echo "Estado: <SELECT NAME='estado'>";
$contadorEstados = 0;
while ($fila = mysql_fetch_array($resultado))
{
echo "<OPTION id='Estado" . $contadorEstado++ . "' value=".$fila['Nombre']. "> $fila['Nombre']. " </OPTION>";
}
echo "</SELECT>";
} else {
echo "Estado: <SELECT NAME='estado' disabled> <OPTION id='Estado0' value=-1> Seleccione Estado </OPTION> </SELECT>";
}
// COMBO CIUDADES
if ( isset($_POST['estado']) ) {
$consulta = "SELECT Nombre FROM Ciudades WHERE Pais=". $_POST['pais'] ." and Estado=". $_POST['estado'];
$resultado = mysql_query($consulta, $idDB);
echo "Ciudad: <SELECT NAME='ciudad'>";
$contadorCiudades = 0;
while ($fila = mysql_fetch_array($resultado))
{
echo "<OPTION id='ciudad", $contadorCiudades++, "' value=".$fila['Nombre'] ". $fila['Nombre'] </OPTION>";
}
echo "</SELECT>";
} else {
echo "Ciudad: <SELECT NAME='ciudad' disabled> <OPTION id='Ciudad0' value=-1> Seleccione Ciudad </OPTION> </SELECT>";
}
echo "<INPUT TYPE='submit' value='Enviar' name='Enviar' id='Enviar'></form>";
} else{
// AQUI VA EL CÓDIGO QUE PROCESA LOS RESULTADOS ENVIADOS DESDE EL FORMULARIO
}
?>
</body> </html>
Vamos a suponer que es usuario ha seleccionado un país, un estado y una ciudad. Si ahora cambia el país, el estado y la ciudad ya no corresponden y tendrías que borrarlos. Eso tienes que comprobarlo, pero por ahora lo dejamos en el código de arriba.
Hola amigo.
Es una respuesta interesante.
Pero lo haces todo vía formulario y yo quisiera hacerlo que se mezcle con Javascript.
Sabes algo de esto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas