Hola, como andan? Les comento, tengo 3 selects(Institucion, areas y Subareas).
Cuando se elije una institucion, muestra todas las areas que pertenecen a esa institucion. El problema es que no puedo hacer lo mismo con las subareas (muestran todas las subareas que pertenecen a tal area).
Les paso el codigo.
Los select:
Código:
<tr>
<td height="39" align="right">Seleccione Institución :</td>
<td colspan="2"><select name="institucion" onChange="slctryole(this,this.form.area)" class="box">
<option value="N" selected >Sin Especificar</option>
<?php
while ($f_ins = mysql_fetch_array($r_inst))
{
?>
<option value="<?php echo "i".$f_ins['id_institucion'] ?>"> <?php echo $f_ins['nombre_institucion']?></option>
<?php
}
?>
</select></td>
</td>
</tr>
<tr>
<td height="39" align="right">Seleccione Area :</td>
<td colspan="2"><select name="area" onChange="slctryole(this,this.form.subarea)" class="box">
<option value="N" selected>Seleccione Area</option>
</select></td>
</tr>
<tr>
<td height="39" align="right">Seleccione Subarea :</td>
<td colspan="2"><select name="subarea" class="box">
<option value="N" selected>Seleccione Subarea</option>
</select></td>
</tr>
Ahora, los javascript
:
Código:
<?php
// Generando LISTA DE areas
$f_area=mysql_fetch_array($r_area);
echo "<script language='javascript' type='text/javascript'>".chr(13).chr(10);
$varaux= "i".$f_area['id_institucion'];
$cont=0;
echo "var "."i".$f_area['id_institucion']."=new Array()".chr(13).chr(10);
echo "i".$f_area['id_institucion']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
$cont++;
echo "i".$f_area['id_institucion']."[$cont] = new slctr('".trim($f_area['nombre_area'])."','".$f_area['id_area']."')";
echo chr(13).chr(10);
$cont++;
while ($f_area=mysql_fetch_array($r_area))
{
$idarea = "i".$f_area['id_institucion'];
if ($idarea==$varaux)
{
$vcod= "i".$f_area['id_institucion'];
echo "i".$f_area['id_institucion']."[$cont] = new slctr('".trim($f_area['nombre_area'])."','".$f_area['id_area']."')";
echo chr(13).chr(10);
$cont++;
}
else
{
$varaux= "i".$f_area['id_institucion'];
echo "var "."i".$f_area['id_institucion']."=new Array()".chr(13).chr(10);
$cont=0;
echo "i".$f_area['id_institucion']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
$cont++;
echo "i".$f_area['id_institucion']."[$cont] = new slctr('".trim($f_area['nombre_area'])."','".$f_area['id_area']."')";
echo chr(13).chr(10);
$cont++;
}
}
echo "</script> ".chr(13).chr(10);
?>
<script language='javascript' type='text/javascript'>
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>
<?php
// Generando LISTA DE subareas
$f_subarea=mysql_fetch_array($r_subarea);
echo "<script language='javascript' type='text/javascript'>".chr(13).chr(10);
$varaux= "j".$f_subarea['id_area'];
$cont=0;
echo "var "."j".$f_subarea['id_area']."=new Array()".chr(13).chr(10);
echo "j".$f_subarea['id_area']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
$cont++;
echo "j".$f_subarea['id_area']."[$cont] = new slctr('".trim($f_subarea['nombre_subarea'])."','".$f_subarea['id_subarea']."')";
echo chr(13).chr(10);
$cont++;
while ($f_subarea=mysql_fetch_array($r_subarea))
{
$idsubarea = "j".$f_subarea['id_area'];
if ($idsubarea==$varaux)
{
$vcod= "j".$f_subarea['id_area'];
echo "j".$f_subarea['id_area']."[$cont] = new slctr('".trim($f_subarea['nombre_subarea'])."','".$f_subarea['id_subarea']."')";
echo chr(13).chr(10);
$cont++;
}
else
{
$varaux= "j".$f_subarea['id_area'];
echo "var "."j".$f_subarea['id_area']."=new Array()".chr(13).chr(10);
$cont=0;
echo "j".$f_subarea['id_area']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
$cont++;
echo "j".$f_subarea['id_area']."[$cont] = new slctr('".trim($f_subarea['nombre_subarea'])."','".$f_subarea['id_subarea']."')";
echo chr(13).chr(10);
$cont++;
}
}
echo "</script> ".chr(13).chr(10);
echo $j;
?>