Combos dinámicos combinados

Trabajo con Dreamweaver Ultradev en php y mysql y necesito relacionar tres Combos dinámicos, de forma tal que al seleccionar un valor del primero muestre como resultado un conjunto de valores del segundo y a su vez del tercero
Ejemplo
ComboPais= Argentina,.....
ComboProvincias= La Pampa,.....
ComboLocalidades=Santa Rosa,......
La base de datos Regiones Tiene tres tablas
tbPaises
tbProvincias
tbLocalidades
La estructura de las tablas es muy simple
tbPaises:
Id(numérico)
País(texto)
TbProvincias:
Id(numérico)
Provincias(texto)
TbLocalidades:
Id(numérico)
Localidades(texto)
El id de países es el campo primario que se encuentra relacionado (relación uno a muchos) con el id de provincias, lo mismo para localidades desde la tabla tbProvincias
Respuesta
1
Te envío el siguiente script que va presentando los combos en función de las elecciones:
<?php
$con = mysql_connect("localhost", "root", "");
$seldb = mysql_select_db("Regiones");
function PintaSelect($nombre, $valor, $sql) {
$res=mysql_query($sql);
echo "<select name='$nombre' onchange='submit()'>";
echo "<option value=0>Seleccione $nombre...</option>";
while ($row=mysql_fetch_array($res)) {
echo "<option ";
if ($row[0]==$valor) echo " selected ";
echo " value=".$row[0]."> ".$row[1]." </option>";
}
echo "</select> ";
}
// Si se ha enviado algo recogemos los valores
if (isset($_POST)) {
$pais=$_POST['pais'];
if (isset($_POST['provincia'])) $provincia=$_POST['provincia'];
else $provincia=0;
if (isset($_POST['localidad'])) $localidad=$_POST['localidad'];
else $localidad=0;
}
else {
$pais=0;
$provincia=0;
$localidad=0;
}
// Pintamos el formulario
echo "<form name='prueba' method='post' action='".$_SERVER['PHPSELF']."'>";
PintaSelect('pais', $pais, 'SELECT * FROM tbPaises');
if ($pais!=0) PintaSelect('provincia', $provincia, 'SELECT * FROM tbProvincias');
if ($provincia!=0) PintaSelect('localidad', $localidad, 'SELECT * FROM tbLocalidades');
echo "</form>";
?>
Esto es más o menos lo que quieres. Sólo falta relacionar las provincias y localidades con las elecciones del usuario. Esto se hace modificando las sentencias de SQL que aparecen en cada PintaSelect. Te dejo esta parte a ti, aunque si tienes problemas, no dudes en seguir consultando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas