Comunidad de diseño web y desarrollo en internet online

combobox dependientes

Citar            
MensajeEscrito el 24 Ago 2010 12:04 am
quiero filtrar un combobox donde tengo unos estados, al escojer el estado quiero que se despliegen en otro combobox las respectivas ciudades que coresponden a este estado.agradeceria mucho su ayuda

Por crmauricio

52 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Ago 2010 01:04 am
Bueno despues de tratar y esperar a que se respondiera mi pregunta, pude salir del problema de la siguiente manera:

cree un bd llamada regional. con las siguientes tablas:

CREATE TABLE IF NOT EXISTS `ciudades` (
`codciud` varchar(12) NOT NULL,
`nomciud` varchar(25) DEFAULT NULL,
`coddepto` varchar(12) DEFAULT NULL,
PRIMARY KEY (`codciud`),
UNIQUE KEY `key1` (`codciud`),
KEY `coddepto` (`coddepto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `ciudades`
--

INSERT INTO `ciudades` (`codciud`, `nomciud`, `coddepto`) VALUES
('1', 'Bogota', '1'),
('10', 'Medellin', '3'),
('2', 'Girardot', '1'),
('3', 'Soacha', '1'),
('4', 'La vega', '1'),
('5', 'Ibague', '2'),
('6', 'Icononzo', '2'),
('7', 'Santa Isabel', '2'),
('8', 'Rovira', '2'),
('9', 'Bello', '3');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `deptos`
--

CREATE TABLE IF NOT EXISTS `deptos` (
`coddepto` varchar(12) NOT NULL,
`nomdepto` varchar(25) DEFAULT NULL,
PRIMARY KEY (`coddepto`),
UNIQUE KEY `coddepto` (`coddepto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `deptos`
--

INSERT INTO `deptos` (`coddepto`, `nomdepto`) VALUES
('1', 'Cundinamarca'),
('10', 'Putumayo'),
('11', 'Guainia\r'),
('12', 'Pasto\r'),
('2', 'Tolima'),
('3', 'Antioquia'),
('4', 'Choco '),
('5', 'Atlantico'),
('6', 'Risaralda'),
('7', 'Meta'),
('8', 'Amazonia'),
('9', 'Guajira');

--
-- Filtros para las tablas descargadas (dump)
--

--
-- Filtros para la tabla `ciudades`
--
ALTER TABLE `ciudades`
ADD CONSTRAINT `fk` FOREIGN KEY (`coddepto`) REFERENCES `deptos` (`coddepto`);


luego cree la siguiente programacion para los combobox:

PRIMER COMBOBOX

<?php

// Creo una lista desplegable




if(!isset ($_POST['deptos'])){

}
else
$deptos = $_POST['deptos'];
echo "<select onchange =\"document.misbarrios.submit();\" name=\"deptos\">";
echo "<option value= >[Seleccione el Barrio]";
// realizo la consulta
$result1 = mysql_query("select coddepto,nomdepto from deptos");

// escribo secuencialmente con un bucle while los valores de la tabla dentro del select

while ($row1 = mysql_fetch_array($result1)){
if($row1['coddepto'] == $deptos){

$varcod="SELECTED";
$coddepto=$row1['coddepto'];









}
else
$varcod="";


echo "<option $varcod value=\"".$row1['coddepto']."\" >".$row1['nomdepto']."</option>";



}

// cierro el select
echo "</select>";
?>

SEGUNDO COMBOBOX:


<?php

// Creo una lista desplegable

echo "<select name='ciudades' >";

// realizo la consulta

$result2 = mysql_query("select codciud,nomciud from ciudades where coddepto = $coddepto");//deptos

// escribo secuencialmente con un bucle while los valores de la tabla dentro del select

while ($row2 = mysql_fetch_array($result2)){

if($row2['codciud'] == $ciudades){
$varcod1="SELECTED";

echo '<option value="'.$row2['codciud'].'">'.$row2['nomciud'].'</option>';
$codciud=$row2['codciud'];




}

else
$varcod1="";


echo "<option $varcod1 value=\"".$row2['codciud']."\">".$row2['nomciud']."</option>";


}

// cierro el select
echo "</select>";
?>

Y EN EL FORMULARIO QUEDA ASI:
combobox.php



<?php


include("conex.php");// script donde esta la conexion a la bd
?>
<html>
<title> EJEMPLO DE COMBOX DINAMICO </title>
</head>

<body>
</tr>
<tr>
<td>
<table width="100%" cellspacing="2" cellpadding="2">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><!-- InstanceBeginEditable name="contenido" -->






<form name="misbarrios" action="" method="POST">
<table width="514" border="0" align="center" cellpadding="2" cellspacing="2">
</tr>
<tr>



<tr> <td><span class="Estilo6">Departamento:</span></td>
<td><span class="Estilo7">




<?php



// Creo una lista desplegable




if(!isset ($_POST['deptos'])){

}
else
$deptos = $_POST['deptos'];
echo "<select onchange =\"document.misbarrios.submit();\" name=\"deptos\">";
echo "<option value= >[Seleccione el Barrio]";
// realizo la consulta
$result1 = mysql_query("select coddepto,nomdepto from deptos");

// escribo secuencialmente con un bucle while los valores de la tabla dentro del select

while ($row1 = mysql_fetch_array($result1)){
if($row1['coddepto'] == $deptos){

$varcod="SELECTED";
$coddepto=$row1['coddepto'];









}
else
$varcod="";


echo "<option $varcod value=\"".$row1['coddepto']."\" >".$row1['nomdepto']."</option>";



}

// cierro el select
echo "</select>";
?>
</span> </td>

</tr>
<tr>
<td><span class="Estilo6">Ciudad:</span></td>
<td>
<span class="Estilo7">
<?php

// Creo una lista desplegable

echo "<select name='ciudades'>";

// realizo la consulta

$result2 = mysql_query("select codciud,nomciud from ciudades where coddepto = $coddepto");//deptos

// escribo secuencialmente con un bucle while los valores de la tabla dentro del select

while ($row2 = mysql_fetch_array($result2)){

if($row2['codciud'] == $ciudades){
$varcod1="SELECTED";

echo '<option value="'.$row2['codciud'].'">'.$row2['nomciud'].'</option>';
$codciud=$row2['codciud'];




}

else
$varcod1="";


echo "<option $varcod1 value=\"".$row2['codciud']."\">".$row2['nomciud']."</option>";


}

// cierro el select
echo "</select>";
?>
</span> </tr>
</table>


</form>
</body>
</html>



y para finalizar el script de conexion:
conex.php


<?php
$dbname = "regional";


$local = mysql_connect("localhost","root",""); //se conecta
if( ! mysql_select_db( $dbname, $local ) ) // abre la B.D
echo "Error al conectar con la Base de Datos: $dbname";







?>

Por crmauricio

52 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.