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:
Ahora, los javascript:<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>
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; ?>