Foros del Web » Programando para Internet » PHP »

Duda sobre consulta a partir de menu desplegable

Estas en el tema de Duda sobre consulta a partir de menu desplegable en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/10/2003, 09:10
 
Fecha de Ingreso: mayo-2002
Mensajes: 30
Antigüedad: 21 años, 10 meses
Puntos: 0
Duda sobre consulta a partir de menu desplegable

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'";
  #2 (permalink)  
Antiguo 15/10/2003, 16:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Si no te entiendo mal, tu problema es con la consulta de compara1.php. Si te fijas en ella estas buscando los organismos con el id_min (id del ministerio) igual al valor del combo ministerios.

Y lo que tenias que hacer es buscar los de id_org (id del organismo) igual al valor del combo organismos.

Asi que la consulta de compara1.php seria:
Código PHP:
$query "select * from organismos where id_org='".$_POST['id_org']."'"
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 15/10/2003, 16:13
 
Fecha de Ingreso: mayo-2002
Mensajes: 30
Antigüedad: 21 años, 10 meses
Puntos: 0
Hola ya había revisado mi error gracias por tu ayuda pero ahora tengo este problemita:

Tengo un formulario en donde se recoge una informacion de entrada con un menu desplegable, este direcciona a otr en donde se obtiene la informacion que ya se encuentra en la base de datos consultada en cajas de texto, elijo una opcion en un menu desplegable para continuar con la transaccion, y me lleva a otro formulario que igualmente debo llenar.


Ahora quiero enviar toda esa informacion por correo electronico, cabe mencionar los datos del primer formulario, del segundo y del ultimo, solo que nada mas me envía los datos del ultimo formulario. Como paso las otras variables de los otros formularios????
  #4 (permalink)  
Antiguo 15/10/2003, 16:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Bueno, la forma sencilla seria crear campos ocultos (hidden) en los formularios intermedios para ir pasando los valores.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:51.