Foros del Web » Programando para Internet » PHP »

pasar variables de una página a otra.

Estas en el tema de pasar variables de una página a otra. en el foro de PHP en Foros del Web. buenas, tengo hecho un formulario de busqueda, y tengo implementado el paginador de pinedo. el problema que tengo es que cuando intento ir a la ...
  #1 (permalink)  
Antiguo 17/04/2007, 02:53
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
pasar variables de una página a otra.

buenas, tengo hecho un formulario de busqueda, y tengo implementado el paginador de pinedo.

el problema que tengo es que cuando intento ir a la página 2 o posteriores la variable que he pasado desde el buscador mediante post la pierdo. como puedo hacer para que la variable se mantenga?


he intentado de la siguiente manera:

if(!post)
ejecuta el paginador
else
ejecuta la recepción de post y el paginador.

pero me dice que la variable $buscar que es la que paso del buscador la ha perdido.

¿que puedo hacer?

gracias

oskar
  #2 (permalink)  
Antiguo 17/04/2007, 03:22
 
Fecha de Ingreso: mayo-2005
Ubicación: Avilés/Asturias
Mensajes: 79
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: pasar variables de una página a otra.

No lo entiendo muy bien, pero ¿no será co nvariables de session?
__________________
Si no hubiera Sol sería de noche . Heráclito de Éfeso :si:
  #3 (permalink)  
Antiguo 17/04/2007, 03:30
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: pasar variables de una página a otra.

si utilizo una variable de sesión, luego cada vez que entre en el buscador tendría que matar la variable, y no me gustaría tener que hacer eso.

pero si no hay otra manera tendré que meter variables de sesión.

un saludo

oskar calvo
  #4 (permalink)  
Antiguo 17/04/2007, 06:36
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: pasar variables de una página a otra.

Hola, habria que ver como estas recogiendo las variables, la forma correcta de recibir las variables cuando usas post seria:
Código PHP:
$_POST["buscar"];
//si utilizas get
$_GET["buscar"]; 
Saludos
__________________
->Aprender es un proceso que incluye el error..
  #5 (permalink)  
Antiguo 17/04/2007, 07:48
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: pasar variables de una página a otra.

Hola cala932, las variables las paso bien.

el problema es que el paginador cuando va a la 2º o posteriores páginas no encuntra la varible de la consulta, y me dice que no esta definida.

ese es el problema, la solución sería utilizar una variable de sesión, y en el formulario de busqueda matar las variables que esten, por si acaso.

Código PHP:
$buscar=$_POST["buscar"]; 
y el paginador completo es:

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php
require ("conectarbbdd3.php");
require (
"menuarbol.php");
require (
"menu_descriptores.php");
?>

<html><head>
<title>Resultados de b&aucute;squeda</title>
</head>
<body>


<?php
$buscar
=$_POST["buscar"];

$_pagi_sql="SELECT titulo, descripcion, clasificacion , MATCH(titulo, descripcion, clasificacion) AGAINST ('$buscar')  as Score FROM principal WHERE MATCH(titulo, descripcion, clasificacion) AGAINST ('$buscar') ORDER BY Score DESC";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
$_pagi_propagar = array("id","termino");//No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

//Leemos y escribimos los registros de la página actual
while($row mysql_fetch_array($_pagi_result)){
echo 
"<table align=\"center\"><tr><td width=\"600px\"><fieldset><legend>";
echo 
$row['titulo'];
echo 
"</lengend><p><label>localización:</label>";
echo 
"</p><p><label>Clasificación:</label>";
echo 
$row['clasificacion'];
echo 
"</p><p><label>Descripcion:</label>";
echo 
$row['descripcion'];
echo 
"</p></fieldset></td></tr></table>"
}
//Incluimos la barra de navegación
echo'<p align="center">'.$_pagi_navegacion.'<p>';
//Incluimos la información de la página actual
echo'<p align="center">Proyectos'.$_pagi_info.'</p>';

?>
</body>
</html>
el error que me da cuando la consulta a las posteriores páginas es:

Código:
Notice: Undefined index: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 21

Notice: Undefined index: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 21
un saludo y gracias.

oskar calvo.
  #6 (permalink)  
Antiguo 17/04/2007, 08:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: pasar variables de una página a otra.

Si te fijas tienes esta linea:
Código PHP:
$_pagi_propagar = array("id","termino");//No importa si son POST o GET 
Ahi le tienes que dar tambien que propague el $_POST['buscar'].

Salu2.
  #7 (permalink)  
Antiguo 17/04/2007, 08:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: pasar variables de una página a otra.

he cambiado como me indicas la linea a esta:

Código PHP:
$_pagi_propagar = array($_POST["buscar"]);//No importa si son POST o GET 

y me da error,
Cita:
Notice: Undefined index: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 15

Notice: Undefined index: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 32
si la pongo así:

Código PHP:
$_pagi_propagar = array($_POST["buscar"]);//No importa si son POST o GET 
me dice

Cita:
Notice: Undefined index: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 15
la linea 15 es:

Código PHP:
$buscar=$_POST["buscar"]; 

esto pensado

he intentado hacer: si no recibo post ejecuta variable, si recibes post sigue para alante, pero sigue sin pasarme la variable a la página segunda.

este es el código último que he intentado.

Código PHP:
<?php
if (!$_POST
{
$_pagi_sql="SELECT titulo, descripcion, clasificacion , MATCH(titulo, descripcion, clasificacion) AGAINST ('$buscar')  as Score FROM principal WHERE MATCH(titulo, descripcion, clasificacion) AGAINST ('$buscar') ORDER BY Score DESC";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
$_pagi_propagar = array($buscar);//No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

//Leemos y escribimos los registros de la página actual
while($row mysql_fetch_array($_pagi_result)){
echo 
"<table align=\"center\"><tr><td width=\"600px\"><fieldset><legend>";
echo 
$row['titulo'];
echo 
"</lengend><p><label>localización:</label>";
echo 
"</p><p><label>Clasificación:</label>";
echo 
$row['clasificacion'];
echo 
"</p><p><label>Descripcion:</label>";
echo 
$row['descripcion'];
echo 
"</p></fieldset></td></tr></table>"
}
//Incluimos la barra de navegación
echo'<p align="center">'.$_pagi_navegacion.'<p>';
//Incluimos la información de la página actual
echo'<p align="center">Proyectos'.$_pagi_info.'</p>';
}



else{
$buscar=$_POST["buscar"];

$_pagi_sql="SELECT titulo, descripcion, clasificacion , MATCH(titulo, descripcion, clasificacion) AGAINST ('$buscar')  as Score FROM principal WHERE MATCH(titulo, descripcion, clasificacion) AGAINST ('$buscar') ORDER BY Score DESC";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
$_pagi_propagar = array($buscar);//No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

//Leemos y escribimos los registros de la página actual
while($row mysql_fetch_array($_pagi_result)){
echo 
"<table align=\"center\"><tr><td width=\"600px\"><fieldset><legend>";
echo 
$row['titulo'];
echo 
"</lengend><p><label>localización:</label>";
echo 
"</p><p><label>Clasificación:</label>";
echo 
$row['clasificacion'];
echo 
"</p><p><label>Descripcion:</label>";
echo 
$row['descripcion'];
echo 
"</p></fieldset></td></tr></table>"
}
//Incluimos la barra de navegación
echo'<p align="center">'.$_pagi_navegacion.'<p>';
//Incluimos la información de la página actual
echo'<p align="center">Proyectos'.$_pagi_info.'</p>';
}
?>
Un saludo

oskar calvo.
  #8 (permalink)  
Antiguo 17/04/2007, 08:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: pasar variables de una página a otra.

Ya que hiciste ese cambio las variables se pasaran via GET, entonces es mejor que tu script lo hagas asi:
Código PHP:
$buscar=$_REQUEST["buscar"]; 
  #9 (permalink)  
Antiguo 17/04/2007, 08:57
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: pasar variables de una página a otra.

me sigue dando error en
Cita:
Notice: Undefined variable: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 17

Notice: Undefined variable: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 17

Notice: Undefined variable: buscar in c:\easyphp1-8\www\daniel\buscador2.php on line 32
la verdad es que no se como arreglar esto. si lo conseguimos es de órgado para comunicarselo a la persona que hizo el paginador para que tenga en cuenta las implementacones para añadir un buscador.

veo que la única solucción es utilizar una variable de sesiones, pero es que tener que andar matando sesiones y abriendolas puede dar muchos problemas según con que navegadores.

un saludo

harriak
  #10 (permalink)  
Antiguo 17/04/2007, 09:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: pasar variables de una página a otra.

ya checaste que si se este propagando en cada link la variable de buscar?, no es que este mal el paginador de Jpinedo, es mas bien que estas implementandolo mal, ya que no es necesario que los buscadores envien sus resultados via POST. (si te fijas google y otros buscadores todos envian sus resultados via GET)

Salu2.
  #11 (permalink)  
Antiguo 17/04/2007, 09:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: pasar variables de una página a otra.

el problema es ese, que no se donde se verifica eso, donde se le indica al paginador cual es la variable que tiene que coger.

también lo he intentado con get, y me da el mismo problema, pierdo la variable cuando voy al resto de páginas.

¿alguna sugerencia?

un saludo

oskar calvo.
  #12 (permalink)  
Antiguo 17/04/2007, 10:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: pasar variables de una página a otra.

Lee la documentacion del paginador, necesitas usar $_pagi_propagar, para pasar una o mas variables entre las paginas.

Saludos.
  #13 (permalink)  
Antiguo 17/04/2007, 13:37
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: pasar variables de una página a otra.

he utilizado

esto en $_pagi_propagar.

Código PHP:
$_pagi_propagar = array($buscar);//No importa si son POST o GET 
y

Código PHP:
$_pagi_propagar = array($_POST["buscar"]);//No importa si son POST o GET 
y

Código PHP:
$_pagi_propagar = array($_GET["buscar"]);//No importa si son POST o GET 
y me sigue dando el problema de que me pierde la variable.

estoy pensando en meter mano directamente a la función de navegación para colarle a capon la variable.

algo como esto

Código PHP:
echo'<p align="center">'.$_pagi_navegacion.'buscar='.$buscar.; 
a ver si forzando así la variable en la url me la coge.

un saludo

oskar calvo
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 02:18.