Foros del Web » Programando para Internet » PHP »

Cómo traer valores a la misma Página??

Estas en el tema de Cómo traer valores a la misma Página?? en el foro de PHP en Foros del Web. Hola a todos!! Quiero pedirles ayuda respecto a lo siguiente: Tengo una página llamada "Inscritos.php" la cual tiene un ListBox (lista) que trae desde la ...
  #1 (permalink)  
Antiguo 15/01/2004, 17:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Cómo traer valores a la misma Página??

Hola a todos!!

Quiero pedirles ayuda respecto a lo siguiente:

Tengo una página llamada "Inscritos.php" la cual tiene un ListBox (lista) que trae desde la base de datos todos los alumnos de un colegio (Apellido paterno Apellido Materno y Nombres).

Lo que quiero hacer es una consulta a la BD con ese valor (lista) pero que me traiga los datos en la MISMA PÁGINA (Inscritos.php) por tanto no quiero usar otra página en la cual me reciba los datos y ahí se consulte, sino que quiero hacer la consulta en la misma Inscritos.php.

Inscritos.php -----ojo!!! En la línea del form action ¿se pone el
nombre de la misma página para que me
muestre el resultado aquí mismo?

Aquí está el código que hace lo que quiero pero no es eficiente, pues cuando cargo la Página Inscritos.php aparece la lista tal como quiero, pero me Señala Warning pues está preparada para recibir datos que aún no se ha seleccionado el NOMBRE de la lista para traer esos resultados.


<FORM action="Inscritos.php" method="post">
<SELECT name="lista" size=3>
<?php
$MySqlHostname = "x";
$MySqlUsername = "xx";
$MySqlPassword = "xxx";
$MySqlDatabase = "xxxx";
$dblink=MYSQL_CONNECT($MySqlHostname, $MySqlUsername, $MySqlPassword);
@mysql_select_db("$MySqlDatabase");
$sql = "SELECT PATERNO, MATERNO,NOMBRES FROM ALUMNOS";
$query = @mysql_query($sql, $dblink);
while ($row = mysql_fetch_array($query))
{
$PATERNO = $row['PATERNO'];
$MATERNO = $row['MATERNO'];
$NOMBRES = $row['NOMBRES'];
printf("<OPTION value=\"$PATERNO\", \"$MATERNO\", \"$NOMBRES\">$PATERNO $MATERNO $NOMBRES </option>");}
?>
</select>

Hasta aquí todo ok, el problema es que no se cómo decirle que a partir del valor lista me traiga los datos desde la BD en esta MISMA Página!!!!
***********

A modo de prueba usé un botón que en el form action le digo que cargue la misma página (no se me ocurrió otra forma)

<input type="submit" name=boton_ingresar_datos value="Ver datos">

<?
//Conectando a la BD...
mysql_connect("x", "xx", "xxx");

//Ejecutando la sentencia SQL
$result=mysql_db_query("xxxx", "select datos1, datos2, dato3, datos4, dato5 from ALUMNOS WHERE claveprimaria=$lista");
?>
<?
//Mostrando los registros

while ($row=mysql_fetch_array($result))
{
echo '<tr><td>'.$row["DATO1"].'</td>';
echo '<td>'.$row["DATO2"].'</td>';
echo '<td>'.$row["DATO3"].'</td>';
echo '<td>'.$row["DATO4"].'</td>';
echo '<td>'.$row["DATO5"].'</td></tr>';
}
mysql_free_result($result);
?>

</form>
</body>
</html>



Espero me hayan entendido, puese el código para que me puedan entender mejor.

Por favor ayuda!!!

Gracias.
  #2 (permalink)  
Antiguo 15/01/2004, 19:55
 
Fecha de Ingreso: septiembre-2002
Mensajes: 122
Antigüedad: 21 años, 6 meses
Puntos: 0
Bueno para enviar los datos a la misma pagina lo puede hacer asi:
<form name="form1" action="<?=$PHP_SELF ?>" method="post"> o asi:
<form name="form1" action="inscritos.php" method="post">

Para enviar los datos puedes utilizar un boton Submit o con javascript en el evento OnClick de la lista.

<SELECT name="lista" size=3 OnClick="javascript: document.form1.submit();">

De esta manera cuando hagas click en un item envia los datos.

Valide ademas antes de colocar los valores en los controles que las variables no esten vacias para que no le generen errores.

Bueno espero que esto le sirva de algo.

Saludos

Última edición por Reyis; 15/01/2004 a las 19:57
  #3 (permalink)  
Antiguo 15/01/2004, 21:04
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Sólo tienes que poner un condicional que verifique si el script ha sido llamado vía url, o si viene del formulario.

En tu prueba, bastará con preguntarse si existe la variable $_POST['boton_ingresar_datos'] que se crea al hacer click en el submit y viaja al script siguiente.
Código PHP:
if(isset($_POST['boton_ingresar_datos'])){//Si está setada la variable

   //Acá haces todo el tema de mostrar los resultados
   //Ten en cuenta que la línea mysql_connect("x", "xx", "xxx");
   //ya no es necesaria porque ya te conectaste más arriba


De esa forma no te debería dar ningún error.

Saludos

Última edición por jpinedo; 15/01/2004 a las 21:05
  #4 (permalink)  
Antiguo 16/01/2004, 16:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias pero...

Gracias...

Lo de JPineda lo probé y dejó de mostrar el warning.

Lo que necesito es justamente lo que señala Reyis, es decir seleccionar un valor de la lista y que sin clicar sobre un botón me haga la consulta, PERO cómo lo hago???, disculpen pero quisiera saber cómo debo hacer el javascript que envie la consulta a la base de datos con el valor de la lista?????

Por favor ayudenm, he tratado de hacerlo pero no me resulta!!!

Gracias

Yuki27
  #5 (permalink)  
Antiguo 16/01/2004, 16:16
 
Fecha de Ingreso: septiembre-2002
Mensajes: 122
Antigüedad: 21 años, 6 meses
Puntos: 0
No le funciono con lo que le coloque?
<SELECT name="lista" size=3 OnClick="javascript: document.form1.submit();">

ahi esta el submit con javascript.
  #6 (permalink)  
Antiguo 16/01/2004, 16:37
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Si funcionó, pero cómo ...

Reyis, muchas gracias lo probé y funcionó,

pero el problemita que tengo es que la primera vez que cargo Inscritos.php aparece el Warning pues el código dice que va a mostrar datos de acuerdo al valor de la lista pero como es primera vez que se carga aún no se ha seleccionado el valor.

Lo que señaló JPinedo solucionaba el problema pero era para el botón submit (creo), pero como evito que aparezca el warning trabajando con la sentencia que Usted me envio??

espero me pueda ayudar!!!

Yuki27
  #7 (permalink)  
Antiguo 16/01/2004, 20:04
 
Fecha de Ingreso: septiembre-2002
Mensajes: 122
Antigüedad: 21 años, 6 meses
Puntos: 0
Prueba seleccionando el primer valor de la lista tan pronto los este cargando pued utilizar una variable de control del numero de elementos de la listas de tal manera que pueda saber cuando llega el primer elemento y lo selecciona asi eje:
$i=0;
while ($row = mysql_fetch_array($query))
{
$i++;
$PATERNO = $row['PATERNO'];
$MATERNO = $row['MATERNO'];
$NOMBRES = $row['NOMBRES'];
printf("<OPTION value=\"$PATERNO\", \"$MATERNO\", \"$NOMBRES\" <? if ($i==1) echo " Selected"; ?> >$PATERNO $MATERNO $NOMBRES </option>");}
?>
</select>

Pruebe a ver...
  #8 (permalink)  
Antiguo 16/01/2004, 21:57
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
NO FUNCIONÓ!!!!

Hola!!!

Gracias por la respuesta pero lamentablemente no funcionó, inclusive probé con la variable en el otro ciclo while, pero nada.

Creo que debe usarse una función tipo la que señaló JPinedo, pero no se cual debe ser!!!!!

Aquí pongo el código que tengo para que me puedan ayudar:

<FORM name="form1" action="Inscritos.php" method="post">
<SELECT name="lista" size=3 OnClick="javascript:document.form1.submit();">
<?php
$MySqlHostname = "x";
$MySqlUsername = "xx";
$MySqlPassword = "xxx";
$MySqlDatabase = "xxxx";
$dblink=MYSQL_CONNECT($MySqlHostname, $MySqlUsername, $MySqlPassword);
@mysql_select_db("$MySqlDatabase");
$sql = "SELECT PATERNO, MATERNO,NOMBRES FROM ALUMNOS";
$query = @mysql_query($sql, $dblink);

while ($row = mysql_fetch_array($query))
{
$PATERNO = $row['PATERNO'];
$MATERNO = $row['MATERNO'];
$NOMBRES = $row['NOMBRES'];
printf("<OPTION value=\"$PATERNO\", \"$MATERNO\", \"$NOMBRES\">$PATERNO $MATERNO $NOMBRES </option>");}
?>
</select>


//<input type="submit" name=boton_ingresar value="Ingresar"> ------esto funciona, pero no quiero usar el botón, por tanto uso la función OnClick

<? ------el siguiente if es el que funciona evitando el warning, pero es para el caso de usar el botón, por tanto creo que debe usarse alguna función como ésta pero para el caso de seleccionar y consultar por el OnClick

<?
-----// if(isset($_POST['boton_ingresar'])){
$sql = "SELECT EDADACTUAL FROM POSTULANTE WHERE
CLAVE=$lista";
$query = @mysql_query($sql, $dblink);

while ($row = mysql_fetch_array($query))
{
$DATOALUMNO = $row['DATOSALUMNO'];

printf("<OPTION value=\"$DATOALUMNO\">$DATOALUMNO </option>");
}
----//}

?>

</form>
</body>
</html>


Es muy importante para mi solucionar este problemita, así que por favor les pidio que me echen una manito ok?

Saludos

Yuki27
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 10:09.