Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/10/2010, 14:14
berseco
Invitado
 
Mensajes: n/a
Puntos:
Listas dependientes

Mi problema es que necesito alguien que tenga paciencia conmigo. Puesto que en php medio me defiendo, pero en javascript no tengo mucha idea y es ahí donde quiero que me ayudes.

Tengo un formulario con cuatro select dependiente que más o menos he creado el código que aparentemente funciona corretamente.

El problema ahora es que no sé cómo meterle el id que depende el siguiente select, (no sé si me he explicado con la suficiente claridad) si no me comentáis lo que estiméis oportuno.
GRACIAS

pais (
id_pais
pais
)



region (
id_reg
id_pais
region
)

provincial (
id_pro
id_pais
id_reg
provincial
)

localidad (
id_local
id_pais
id_reg
id_pro
local
)

<?php require("libreria/conecta.php");
$db= new base ();
?>
<title>Documento sin t&iacute;tulo</title>
</head
<body>
<script type="text/javascript">
function slctr(texto,valor){
this.texto = texto
this.valor = valor
}


<?php
$pais2 = $db->consulta ("SELECT * FROM pais");
while ($pa2 = mysql_fetch_assoc($pais2))
{
$pa[$pa2['id_pais']] = $pa2['pais'];
}

$reg = $db->consulta ("SELECT * FROM region");
while ($re = mysql_fetch_assoc($reg))
{
$regi[$re['id_reg']] = $re['region'];
}

$provi = $db->consulta ("SELECT * FROM provincia");
while ($prov = mysql_fetch_assoc($provi))
{
$pro[$prov['id_pro']] = $prov['provincia'];
}

$loca = $db->consulta ("SELECT * FROM localidad");
while ($loc = mysql_fetch_assoc($loca))
{
$lo[$loc['id_local']] = $loc['local'];
}

?>
function slctryole(cual,donde){
if(cual.selectedIndex != 0){
donde.length=0
cual = eval(cual.value)
for(m=0;m<cual.length;m++){
var nuevaOpcion = new Option(cual[m].texto);
donde.options[m] = nuevaOpcion;
if(cual[m].valor != null){
donde.options[m].value = cual[m].valor
}
else{
donde.options[m].value = cual[m].texto
}
}
}
}
</script>
<form action= "modi_web2.php" method="post">
<table width="86%" border="1">
<tr>
<td width="26%"><div align="center">País</div></td>
<td width="23%"><div align="center">Región</div></td>
<td width="29%"><div align="center">Provincia</div></td>
<td width="29%"><div align="center">Localidad</div></td>
</td>
</tr>
<tr>
<td>
<select name="s_pais" onChange="slctryole(this, this.form.s_reg)" >
<option> - elige - </option>
<?
foreach($pa as $idd => $cat)
{ ?>
<option value="<? echo $idd ?>"> <? echo $cat ?></option>
<? } ?>
</select>
</td>
<td>
<select name="s_reg" onChange="slctryole(this, this.form.s_pro)" >
<option> - elige - </option>
<?
foreach($regi as $idd => $cat)
{ ?>
<option value="<? echo $idd ?>"> <? echo $cat ?></option>
<? } ?>
</select>
</td>
<td>
<select name="s_pro" onChange="slctryole(this, this.form.s_lo)" >
<option> - elige - </option>
<?
foreach($pro as $idd => $cat)
?>
<option value="<? echo $idd ?>"> <? echo $cat ?></option>
<? } ?>
</select>
</td>
<td>
<select name="s_lo" >
<option> - elige - </option>
<?
foreach($lo as $idd => $cat)
{ ?>
<option value="<? echo $idd ?>"> <? echo $cat ?></option>
<? } ?>
</select>
</td>
</form>
?>
</body>
</html>