kiero hacer combos dependientes aki les explico lo ke tengo espero me ayuden
solo me rellena el primer combo pero si selecciono la unidad academica del
primer combo no me muestra los profesores de dicha unidad academica seleccionada
me podrian ayudar a encontrar en error
mis tablas son las siguientes
uni_academica
c_unidad .. ke es la calve la unidad y llave de la tabla
nom_unidad... ke describe el nombre de la unidad
profesores
c_profesor .. ke es la clave del profesor o docente
nom_profesor.. ke describe el nombre del docente
c_unidad... ke es el campo conel ke se relaciona
me base en el codigo de esta pagina pero no me funciona.
espero ke alguien me pueda ayudar a resolver el problema
de antemano gracias y saludos
atte rafa
utilizo DW,PHP y MySQL <script language="javascript">
// Función que rellena el segundo combo según el valor seleccionado en el primero.
// Se le pasa como parámetro el nombre del formulario desde el cuál se llama a la función,
// de ésta manera podemos llamarlo desde combos con el mismo nombre en una misma página pero
// desde distintos formularios.
function rellenaCombo(formulario)
{
with (document.encuesta[formulario]) // Establecemos por defecto el nombre formulario pasado para toda la función.
{
var unidad = id_unidad[c_unidad.selectedIndex].value; // Valor seleccionado en el primer combo.
var n = id_profesor.length; // Numero de líneas del segundo combo.
id_profesor.disabled = false; // Activamos el segundo combo.
for (var i = 0; i < n; ++i)
id_profesor.remove(id_profesor.options[i]); // Eliminamos todas las líneas del segundo combo.
id_profesor[0] = new Option("Selecciona el Docente", 'null'); // Creamos la primera línea del segundo combo.
if (unidad != 'null') // Si el valor del primer combo es distinto de 'null'.
{
<?php
// CODIGO PHP
// Para cada unidad academica, construimos el segundo combo con los docentes del mismo.
$cons_uni = mysql_query("SELECT * FROM uni_academica");
for ($l = 0; $l < mysql_num_rows($cons_uni); ++$l)
{
$uni = mysql_fetch_object($cons_uni,$l);
?>
if (unidad== '<?php echo $uni->c_unidad;?>')
{
<?php
// CODIGO PHP
// Construimos los valores del segundo combo con los docentes de la unidad
$cons_doc = mysql_query ("SELECT * FROM profesor WHERE c_unidad = ".$uni->c_unidad." ORDER BY nom_profesor;");
for ($m = 0; $m < mysql_num_rows($cons_doc); ++$m)
{
$doc = mysql_fetch_object($cons_doc, $m);
?>
id_profesor[id_profesor.length] = new Option("<?php echo $doc->nom_profesor;?>",'<?php echo $doc->c_profesor;?>');
<?php
// CODIGO PHP
}
?>
}
<?php
// CODIGO PHP
}
?>
id_profesor.focus(); // Enviamos el foco al segundo combo.
}
else // El valor del primer combo es 'null'.
{
id_profesor.disabled = true; // Desactivamos el segundo combo (que estará vacío).
id_unidad.focus(); // Enviamos el foco al primer combo.
}
id_profesor.selectedIndex = 0; // Seleccionamos el primer valor del segundo combo ('null').
}
}
</script>
</head>
<body>
<table>
<tr>
<td>
<form name="encuesta" method="post" action="...">
<select name="id_unidad" onChange="rellenaCombo('encuesta');">
<option value="null" selected>Seleccione Unidad Académica
<?php
// CODIGO PHP
// Contruimos el primer combo con los valores de la tabla 'uni_academica'.
$cons_uniacademica = mysql_query("SELECT * FROM uni_academica");
for ($k = 0; $k < mysql_num_rows($cons_uniacademica); ++$k)
{
$academica = mysql_fetch_object($cons_uniacademica);
echo " <option value=\"".$academica->c_unidad."\">".$academica->nom_unidad."\n";
}
?>
</select>
</td>
<td>
<select name="id_profesor" disabled>
<option value="null">Selecciona el Docente
</select>
</td>
</form>
</tr>
</table>
</body>
</html>