Vaya, ya lo teneís solucinado.....
Yo hubiese hecho algo parecido a esto: (que en esencia es lo que ha hecho marvin)
Código PHP:
<?
$mostrar = "none"; // para que el div oculto no se muestre (por defecto)
// Comprobar si viene a través de POST (también se puede mirar con un isset y la variable que sea)
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$valor_select = $_POST['envia']; // metemos el valor del campo en una variable.
// Aquí haría la consulta a la BDD
// Comprobaciones varias...
// Y si no hay errores en la consulta:
$datos = mysql_fetch_array($id_query); // metemos el resultado en una variable.
$mostrar = "block"; // para que el div oculto se muestre
}
// aquí puedes hacer la otra consulta, con la que rellenarás el select....
?>
Código HTML....
Formulario
<form lo que sea....>
<select name="envia" onchange="submit()" id="practica">
<option>Seleccionar </option>
<?
while ($fila = mysql_fetch_assoc($consulta)) {
echo('<option value="'.$fila['titulo_practica'].'"');
if (($_SERVER['REQUEST_METHOD'] == 'POST') && ($fila["titulo_practica"] == $valor_select)) {
echo(" selected ");
}
echo('>'.$fila["titulo_practica"].'</option>');
}
?>
</select>
Mas formulario
</form>
<?
//Cargar los datos en la capa:
echo('<div style="display='.$mostrar.'">');
//aquí dentro irán todos los datos que hemos cogido de la consulta...... (los que están en $datos)
echo('</div>');
?>
Código HTML
Es sólo una aproximación, no he comprobado que funcione, es para que se vea por donde van los tiros.
No sé si se puede hacer el onchange="submit()", diría que sí, pero no estoy seguro, de no poderse hacer, se llamaría a una función de js que sólo haría el submit.