
15/08/2007, 12:38
|
 | | | Fecha de Ingreso: agosto-2007 Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 7 meses Puntos: 20 | |
Con postgres, javascipt y php La forma mas facil, creo yo es la de recargar la pagina cada vez que escoges una opcion en un combo superior, asi ya le pasas el valor que escogiste en el combo anterior a el combo inferior (municipio p.ej.), de otra manera tendrias que tener cargados todos los datos de las posibles combinaciones en arreglos de java script (quizas en archivos) para poder rellenar los combos (sin recargar la pagina) cada vez que lo necesites.... aclaro que asi es como lo manejo yo, quizas no sea la correcta ni la mas limpia pero...
Mira asi es como lo he hecho yo:
Codigo Javascript
Código:
<SCRIPT language="JavaScript">
function cambia_suc(idsuc)
{
sucid = idsuc.options[idsuc.selectedIndex].value;
location = "VentasDirServ.php?sucid="+ sucid;
}
function CambiaColonia(idsuc, idcol)
{
sucid = idsuc.options[idsuc.selectedIndex].value;
colid = idcol.options[idcol.selectedIndex].value;
location = "VentasDirServ.php?sucid="+ sucid +"&colid="+ colid;
}
</SCRIPT>
Y a continuacion el codigo html y php haciendo consultas a postgresql, aunque he visto que a Mysql es practimente lo mismo, bueno ahi va y que sirva de algo:
Código:
<select class="combobox" name="sucursalid" onChange="cambia_suc(this.form.sucursalid);">
<?
$sucursales = ObtieneSucursales( $cadcon );
if ( $sucursales )
{
$registros = pg_numrows( $sucursales );
for ( $cont = 0; $cont < $registros; $cont++ )
{
echo "<option ";
if ( $sucursal == pg_result( $sucursales, $cont, 0 ) )
echo "selected ";
echo "value=\"" . pg_result( $sucursales, $cont, 0 ) . "\">" . pg_result( $sucursales, $cont, 1 ) . "</option>\n";
}
}
?>
</select>
<select class="combobox" name="coloniaid" onChange="CambiaColonia(this.form.sucursalid, this.form.coloniaid, 1);">
<?
if ($sucursal)
echo "Sucursal: $sucursal";
else
$sucursal =pg_result( $sucursales, 0, 0 );
$Colonias = ObtieneColonias($cadcon, $sucursal);
if ($Colonias)
{
$registros = pg_numrows($Colonias); //Cantidad de colonias
for ( $cont = 0; $cont < $registros; $cont++ )
{
echo "<option ";
if ( $colonia == pg_result( $Colonias, $cont, 0 ))
echo "selected ";
echo "value=\"" . pg_result( $Colonias, $cont, 0 ) . "\">" . pg_result( $Colonias, $cont, 1 ) . "</option>\n";
}
}
?>
</select>
<select class="combobox" name="calleid">
<?
if ($colonia)
echo "Colonia: $colonia";
else
$colonia =pg_result($Colonias, 0, 0 );
$Calles = ObtieneCalles($cadcon, $sucursal, $colonia);
if ($Calles)
{
$registros = pg_numrows($Calles); //Cantidad de calles
if ($registros > 1)
echo "<option selected value=\"0\">TODAS</option>\n";
for ( $cont = 0; $cont < $registros; $cont++ )
{
echo "<option ";
echo "value=\"" . pg_result( $Calles, $cont, 0 ) . "\">" . pg_result( $Calles, $cont, 1 ) . "</option>\n";
}
}
?>
</select>
|