Tengo el sig. codigo para combos dependientes pero no funciona, ayudenme pork no encuentro el error, o si saben de otro más fácil pues diganmelo
Código PHP:
<?php
//conexión a mysql
$servidor = 'localhost';
$usuario = 'root';
$contrasena ='';
$datos = 'docencia';
mysql_connect($servidor,$usuario,$contrasena);
mysql_select_db($datos) or die("No se pudo establecer la Conexión");
?>
<?php
//seleccionamos las opciones del select principal
$sql = "SELECT c_unidad,nom_unidad FROM uni_academica ORDER BY nom_unidad";
$res = mysql_query($sql);
//obtenemos el número de registros
$num = mysql_num_rows($res);
?>
<FORM name="form1" method="POST">
<!--Combo principal-->
<select name="marca" onChange="redirect(this.options.selectedIndex)" style='width:160'>
<option selected value=0>Unidad Académica</option>
<?
for($i=0;$i<$num;$i++) {
$id_marca[$i] = mysql_result($res,$i,0);
$marca[$i] = mysql_result($res,$i,1);
echo "<option value='$id_marca[$i]'>$marca[$i]</option>";
}
?>
</select>
<!--Combo dinámico-->
<select name="modelo" style='width:160'>
<option selected value=0>Docente</option>
</select>
</FORM>
<?
echo "<script><!--";
echo "var groups=".$num;
echo "var group=new Array(groups)";
//Crea tantos arrays como valores hay en el combo principal
echo "for (i=0; i<groups; i++) group[i]=new Array()";
//Opciones cuando no se ha hecho ninguna selección en el combo principal-->
echo "group[0][0]=new Option('Docente','0');";
for($i=0;$i<$num;$i++) {
$sql = "SELECT c_profesor, nom_profesor FROM profesor WHERE c_unidad = $id_marca[$i]";
$res = mysql_query($sql);
//Obtenemos el número de modelos para esa marca
$num2 = mysql_num_rows($res);
for($j=0;$j<$num2;$j++) {
$id_modelo = mysql_result($res,$j,0);
$modelo = mysql_result($res,$j,1);
//Opciones para la opción $i del combo principal
echo "group[$num][$j]=new Option('$modelo','$id_modelo')";
}
}
?>
var temp=document.form1.modelo
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
//-->
</script>
Las Tablas son:
Uni_academica(c_unidad(pk),nom_unidad)
Profesor(c_profesor(pk),c_unidad(fk),nom_profesor)