Hola tengo el siguiente codigo que genera un menu desplegable a partir de otro, esto me funciona perfectamente. El problemita que tengo ahora es que una vez que yo haya escogido una opcion (organismo) del Ministerio seleccionado me genere una consulta sobre dicho organismo, pero mas abajo coloco el codigo de la consulta que estoy realizando y lo que pasa es que me presenta todos los detalles de todos los organismos asociados a ese Ministerio. Por ejemplo: selecciono el Ministerio A y se genera un menu con los organismos 1,2 y 3, yo escojo al organismo 2, entonces me realiza la consulta de todos los organismos (1,2 y 3) en vez del 2 nada más. Cabe destacar que estoy usando dos tablas: ministerios y organismos
A ver que puede estar sucediendo
Codigo Menu desplegable:
-------------------------------------------------------
<?//Conexion con la base//
$host="localhost";$user="xx";$pass="yxx";$conn
="xxxx";
$db = pg_connect ("dbname=$conn user=$user
password=$pass");
// si se ha pulsado el boton enviar ($enviado) se
procesa el formulario ..
// Sino, se continua con el formulario y los nuevos
valores de los Select ..
if (!empty($_POST['enviado'])){
// Procesar el formulario ...
echo "Ministerios: ".$_POST['id_min']."<br>";
echo "Organismos: ".$_POST['id_org'];
include("compara1.php");
} else {
// Obtener el $id_min del envio a si mismo del
formulario ..
$id_min=$_POST['id_min'];
// Inicio Formulario .. PHP_SELF enviamos a si
mismo (a este script).
echo "<form action=\"".$_SERVER['PHP_SELF']."\"
method=\"POST\">\n\n";
// Formar Selec "Ministerios".
echo "<select name=\"id_min\"
onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione un Item
</option>\n";
$consulta_ministerios = "select * from
ministerios";
$rconsultmin = pg_exec($db, $consulta_ministerios);
while
($registro_ministerio=pg_fetch_array($rconsultmin) )
{
// Se mira si el ID del registro es el mismo
q el $id_min q recibimos si hemos cambiado el
select organismo.
// Se selecciona en consecuencia (selected)
la opción elegida.
if ($id_min ==
$registro_ministerio['id_min']){
echo "<option value=\"".$row['id_min']."\"
selected>".$registro_ministerio['ministerio']."</op
tion>\n";
} else {
echo "<option
value=\"".$registro_ministerio['id_min']."\">".$reg
istro_ministerio['ministerio']."</option>\n";
}
}
echo "</select>\n\n";
pg_freeresult($rconsultmin); // Liberar memoria
usada por consulta.
// Formar Select "Organismo"
echo "<select name=\"id_org\">\n";
// Si $id_min no tiene valor (caso de que no se
ha seleccionado ningua opcion del select organismo
// se muestra el mensaje de "seleccione un item"
(del select ministerios).
if (!empty($id_min)){
$consulta_organismos = "select * from organismos
where id_min='$id_min'";
$rconsultorg = pg_exec($db, $consulta_organismos);
// se mira el total de registros de la
consulta .. si es 0 se muestra mensaje en el select
..
if (pg_numrows($rconsultorg) != 0){
while
($registro_organismo=pg_fetch_array($rconsultorg))
{
echo "<option
value=\"".$registro_organismo['id_org']."\">".$regi
stro_organismo['organismo']."</option>\n";
}
} else {
echo "<option value=\"\"> No hay
registros para este Item </option>";
}
} else {
echo "<option value=\"\"> <-- Seleccione un
Item </option>";
}
pg_freeresult($rconsultorg); // Liberar memoria
usada por consulta.
echo "</select>\n\n";
echo "<input type=\"submit\" name=\"enviado\"
value=\" Enviar \" >\n\n";
echo "</form>\n";
}
?>
La consulta que realizo en compara1.php es:
-----------------------------------------------------
$query = "select * from organismos where
id_min='$id_min'";