Hola, bueno, pues aqui en el foro hay muy buenos ejemplos de lo que quieres, pero pues algo asi rapido seria que en el primer combo traigas todos los datos de grados, y dependiendo del grado que selecciones entonces ese valor lo traiga refrescado a la pagina que estas usando con el evento onchange del objeto select, asi por ej
Código HTML:
<select name="grado" onChange="location.href='prueba.php?grado='+this.value">
<option value="0">0</option>
<option value="1" <? if($grado==1){?> selected <? } ?> >1</option>
<option value="2">2</option>
</select>
Ese if hecho en php es para que el valor 1 quede seleccionado si la variable $valor que llega al cambiar el valor del select es igual a 1, y bueno, entonces el otro select de materias por ej, entonces iria con
<select name="materia">
<option value="0">matematicas</option>
<option value="1">sociales</option>
<option value="2">ingles</option>
</select>
pero como este select lo alimentas de una consulta hecha en dw donde usas region repetida para los option, pues entonces en esa consulta iria select * from materia where grado='$grado' que es la variable que recibes del primer select, y ya con esto ahi si se alimentaria este select de las materias con las correspondientes al grado 1 en este ejemplo, e igualmente hacer lo mismo con el siguiente select, bueno, espero te sirva, pero como te digo, aqui en los foros hay ejemplos mas explicativos, un saludo