Foros del Web » Programando para Internet » PHP »

Pasar datos entre pantallas de consulta

Estas en el tema de Pasar datos entre pantallas de consulta en el foro de PHP en Foros del Web. Hola amigos: Tengo un script hecho de consulta, que según va cogiendo los datos que se quieren consultar, los mete en cada fila de una ...
  #1 (permalink)  
Antiguo 08/06/2005, 10:22
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Pasar datos entre pantallas de consulta

Hola amigos:
Tengo un script hecho de consulta, que según va cogiendo los datos que se quieren consultar, los mete en cada fila de una tabla.... más o menos lo habitual, vamos. El tema es que al final de cada fila le añado un botón al que llamo LISTAR y que si se pulsa, se accede a otra página de consulta referente a esa en la que estábamos. Bien, mi problema es que quiero pasar uno de los datos que aparecen en la primera tabla (la referencia de un agente, que es la primera columna de la tabla) a la segunda.
A ver si me explico mejor... La segunda pantalla es otra tabla donde se muestran datos que corresponden a la referencia del agente de la tabla anterior (donde al final de su fila correspondiente tiene el botón LISTAR), y no sé como pasar a la segunda tabla la referencia del agente.

Uf, no sé si me habré explicado bien. Yo incluso lo veo algo dificil...
Muchas gracias.
  #2 (permalink)  
Antiguo 08/06/2005, 11:00
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 20 años, 4 meses
Puntos: 2
bueno, la que deverías hacer es mas o menos lo siguiente:

en el link del botón debes añadir la variable que quieres enviar a la otra pantalla.
Por ejemplo

<?PHP
echo "<a src='pantalla2.php?idAgente='. $idAgente . '><img src=...>';
?>

Lo que consigues con esto en incluir el dato que tu quieres junto con el nombre de la url a donde se tiene que ir el navegador al picar en el link.

Luego dentro de la pagina pantalla2.php puedes manejar la variable idAgente a tu gusto.

Saludos.
  #3 (permalink)  
Antiguo 09/06/2005, 02:57
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Hum no lo acabo de entender bien... a ver... el trozo de código PHP que tengo es este (forma parte de un formulario cuyo ACTION es el de la pantalla a la que quiero pasar el dato del agente):
-----------------------------------------------------------------------
<?
while($row=mysql_fetch_row($result)) {
echo "<tr>";
echo "<input type=\"hidden\" name=\"ag_oculto\" value=\"$row[0]\">";
foreach ($row as $k) echo "<td>",$k,"</td>";
echo "<td>
<div align=\"center\">
<input type=\"submit\" name=\"lista_agentes\" value=\"LISTAR\">
</div>
</td>";
echo "</tr>";
}
?>
-----------------------------------------------------------------------

Es decir, voy generando una tabla donde cada fila es cada registro con sus datos correspondientes de la base de datos, añadiendo al final de cada fila el botón de LISTAR, de manera que si lo pulso, la siguiente pantalla deberá mostrar los datos que se quieren mostrar, pero referentes al agente de la fila correspondiente (la referencia de cada agente, según hice la consulta SQL, es la de $row[0]).
Se me ocurrió intentar pasar el dato (la id. del agente) con un campo hidden pero tal como lo tengo no funciona... Siempre me muestra el valor correspondiente al último registro, es decir, como tengo 6 agentes en la base de datos, pues muestra la Id del sexto...
¿Alguna idea?
  #4 (permalink)  
Antiguo 09/06/2005, 05:31
Avatar de borjasanba  
Fecha de Ingreso: febrero-2005
Ubicación: Asturias
Mensajes: 60
Antigüedad: 19 años, 2 meses
Puntos: 0
Lo que te dice pellagofio es que lo hagas con un enlace en el que pasas por url el id del agente, si lo quieres hacer por post tendrias que definir antes el formulario con el campo action a la pagina que sea y asi recibiras el "ag_oculto".

Un saludo
  #5 (permalink)  
Antiguo 09/06/2005, 10:21
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 20 años, 4 meses
Puntos: 2
supongamos que tienes tu formulario en la página PAGINA1.PHP y que al picar en tu botón LISTAR quieres que se vaya a la página PAGINA2.PHP y le envíe a esa página la referencia del agente.

"<td >".
"<a href=PAGINA2.PHP?idAGENTE=".$fila['idAGENTE']." '> listar </a>".
"</td>"

como puedes ver en el link (href) ponemos el nombre de la página a la que quieres que te direccione al enlace y le incluimos la variable que quieres pasar a esa página (en mi caso le he llamado idAGENTE).
Ya luego puedes trabajar dentro de PAGINA2.PHP con la variable idAGENTE.
  #6 (permalink)  
Antiguo 10/06/2005, 09:00
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Nada, que no hay manera...
De todas formas lo que me decíais era para usar un enlace de los de toda la vida. ¿Y usando un botón tipo "submit", como yo quiero hacerlo?
Es que siempre me coge el último de los agentes... en lugar del que yo quiero que liste, que es el que le corresponde.
En el ACTION del formulario ya le pongo la página a la que quiero pasarle el dato, pero nada, siempre, como digo, coge el último, no el que quiero.
El código que tengo es este (se me ocurrió usar un campo hidden para ver si así puedo pasarle el dato, pero lo mismo: sale el dato del último de los agentes y no del que quiero, que puede ser cualquiera)

---------------------------------------------------------------------
<?
while($row=mysql_fetch_row($result)) {
echo "<tr>";

//DEFINO EL CAMPO HIDDEN LLAMADO "AG_OCULTO"

echo "<input type=\"hidden\" name=\"ag_oculto\" value=\"$row[0]\">";
foreach ($row as $k) echo "<td>",$k,"</td>";

//DEFINO EL BOTÓN TIPO "SUBMIT" QUE APARECERA AL FINAL DE CADA UNA DE LAS FILAS DE LA TABLA RESULTANTE

echo "<td><div align=\"center\"><input type=\"submit\" name=\"lista_agentes\" value=\"LISTAR\"></div></td>";
echo "</tr>";
}
?>
---------------------------------------------------------------------

Jo, vaya lío. Muchas gracias.
  #7 (permalink)  
Antiguo 10/06/2005, 10:45
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 20 años, 4 meses
Puntos: 2
En la página a la que envias las variables pon el siguiente comando:

print_r ($_POST);

con esto verás todas las variables que recibes en dicha página.

También sería bueno que pusieses el código de la página donde recibes las variables.
  #8 (permalink)  
Antiguo 14/06/2005, 03:31
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Ya lo he solucionado!!
El código de la primera página lo he puesto así:

--------------------------------------------------------------------
<?
while($row=mysql_fetch_row($result)) {
echo "<tr>";
foreach ($row as $k) echo "<td>",$k,"</td>";
echo "<td><div align=\"center\"><input type=\"submit\" name=lista[$row[0]] value=\"LISTAR\"></div></td>";
echo "</tr>";
}
?>
--------------------------------------------------------------------

Es decir, el name del botón de submit le pongo un array cuyo íncice sea la referencia del agente que quiero que muestre... De manera que en la segunda página (a la que llamo gracias al ACTION de un form que puse más arriba en el código y que aquí no muestro), el código correcto me ha quedado así:

--------------------------------------------------------------------
[CONEXION CON LA BASE DE DATOS Y DEMÁS]

foreach ($lista as $indice=>$valor){

[RESTO DE CÓDIGO, Y DONDE QUIERA REFERIRME AL AGENTE EN CUESTIÓN, PONGO $indice..., cerrando al final del todo el bucle foreach]
--------------------------------------------------------------------
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 18:04.