Podrias utilizar xajax para solucionar tu problema y con un codigo como este solucionarias tu problema.
Código PHP:
function filtrarMaterias($cuatrimestre, $carreras){
$respuesta = new xajaxResponse();
$rs=mysql_query("SELECT id_grupo,grupo FROM grupos where cuatrimestre = $cuatrimestre and carrera = $carreras") or die ("error");
$HTML = "<select name='grupos' id='grupo'>";
while($row=mysql_fetch_array($rs))
{
$HTML .= "<option value='".$row["grupo"]."'>".$row["grupo"]."</option>";
}
$respuesta->assign("divListaMaterias", "innerHTML", $HTML);
return $respuresta;
}
obiamente la consulta a la base de datos tienes que generarla tu, dependiendo de la estructura de tu BD.
el segundo select seria asi:
Código HTML:
<select name="cuatri"id="cuatrimestre" onChange="javascript: if(document.formulario.carreras.value != 0){xajax_filtrarMaterias(this.value, document.formulario.carreras.value);} else{alert('Debe seleccionar la carrera');}">
<option value="PIMERO">PRIMERO</option>
<option value="SEGUNDO">SEGUNDO</option>
<option value="TERCERO">TERCERO</option>
<option value="CUARTO">CUARTO</option>
<option value="QUINTO">QUINTO</option>
</select>
Puedes ver un ejemplo funcionado en mi blog.
Código:
http://prodev.cl/2008/10/como-crear-combo-box-dinamico-con-xajax/
espero te ayude.
eso.