Foros del Web » Programando para Internet » PHP »

La paginación no me guarda el filtro!!

Estas en el tema de La paginación no me guarda el filtro!! en el foro de PHP en Foros del Web. Como es de imaginar, cuando paginas y vas refrescando tu página cada vez que te mueves por dicha paginación, se pierden las variables que almacenan ...
  #1 (permalink)  
Antiguo 03/12/2009, 06:52
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
La paginación no me guarda el filtro!!

Como es de imaginar, cuando paginas y vas refrescando tu página cada vez que te mueves por dicha paginación, se pierden las variables que almacenan el filtro que has impuesto a los resultados en un momento determinado.

Mi caso es el siguiente:
Tengo una página principal que sólo recibe variables, y dependiendo de la variable que reciba iama a una función u otra, que se encuentran en otra página. Y esas funciones son las encargadas de mostrar el contenido, entre otras cosas.
Ahora, en este particular, la primera vez que se carga mi página iamo a una función que me muestra un formulario de filtro y a otra función que me muestra una tabla de contenido(extraído de una base de datos mysql) sin filtrar y debajo su paginación.
Hago que si utilizo el filtro me conserve el valor seleccionado en el mismo una vez pulsado el botón del formulario. Luego, como ia os he dicho, recojo las variables por $_POST en la otra página para después volver a iamar a las mismas funciones con valores nuevos.
Es posible filtrar por 3 campos, y tener que pasar esos 3 campos por url, tengan valor o no, además de los que tengo que pasar de por sí, se me hace muy engorroso(lo veo de mala calidad).
Esto lo digo por la paginación, porque si cambio de página pierdo cualquier valor que tuviese en el filtro y este desaparece mostrándome todos los resultados de nuevo.

En resúmen, hay alguna forma de guardar variables y no perderlas al refrescar, pero que puedan cambiar su valor?
Yo ia he intentado decirle que si la variable contiene algún valor me la guarde en otra variable y si no, pues no, y así pensé que me conservaría el valor hasta cambiarlo por uno nuevo. Pero no, se inicializa cuando refresco...

Alguien puede darme alguna idea??

Mil gracias de antemano.
  #2 (permalink)  
Antiguo 04/12/2009, 02:49
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: La paginación no me guarda el filtro!!

A nadie le ocurre esto??

Quizás debería quitar la opción de paginar cuando se acceda con filtro?? Parece un martillazo mal dado a la aplicación...

Saludos
  #3 (permalink)  
Antiguo 04/12/2009, 09:09
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: La paginación no me guarda el filtro!!

El problema que creo que tenes es que estas pasando las variables por post... En un paginador te conviene el get siempre, porq en la url por mas que refresques van a estar ahi las variables entendes?

Disculpame pero no entendi bien lo del "filtro", me lo podras explicar un toke mejor?
  #4 (permalink)  
Antiguo 06/12/2009, 11:18
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: La paginación no me guarda el filtro!!

Cita:
Iniciado por jackson666 Ver Mensaje
Disculpame pero no entendi bien lo del "filtro", me lo podras explicar un toke mejor?
Hola jackson666. Lo primero gracias por tu respuesta, pero ia la he probado y no surte el efecto deseado.

Verás con filtro me refiero a eso mismo, a un formulario que filtra los resultados. Te pongo un ejemplo:
En una tienda quieres ver los artículos y te aparece una lista con todos los artículos existentes. Ahora, encima de ese listado hay un formulario que te da la opción de ver, por ejemplo, sólo los artículos que tienen unidades disponibles, o sólo los que están agotados.
La lista que puedes ver, tanto si filtras como si no, aparece paginada cuando los items excenden, por ejemplo, de 10. Así, si hay para mostrar 20 items, se paginaran en 2 páginas.
La cosa está en que si io filtro los resultados, le digo por ejemplo que me muestre sólo los que tienen unidades disponibles, y resultan más de 10 items, me lo paginará y tendre 2 páginas para moverme por los resultados. En la primera página me filtra correctamente, pero si le digo que quiero ver la segunda página pierde las variables del filtro y me vuelve a mostrar todos los resultados correspondientes a la segunda página(los artículos con unidades disponibles y los que no tienen).
Lo entiendes ia?? espero que sí. Gracias de nuevo por tu respuesta, pero me temo que esa no es la solución.

Un saludo!!
  #5 (permalink)  
Antiguo 06/12/2009, 13:32
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: La paginación no me guarda el filtro!!

Bueno, sólo me quedaba decir que lo he conseguido, aunque con un martillazo(martillazo=arreglo cutre).

Finalmente, como la paginación pasa variables por URL, he puesto que si alguna de las variables del filtro que se le pasan a la función que obtiene y muestra los resultados(dependiendo de si ese filtro está o no vacío) guarda algún valor, pues que me la pase también por URL. A esto tengo que decir que la función de la que hablo es la que consulta a la base de datos, muestra los resultados y finalmente muestra también la paginación.

La cosa está en que queda feo que se vea tanta palabreja en el explorador y me gustaría poder encontrar otra solución mejor.
Si alguien la tiene le estaré muy agradecida.

Un saludo!!
  #6 (permalink)  
Antiguo 26/11/2010, 05:48
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: La paginación no me guarda el filtro!!

Tengo el mismo caso que tu con la paginación y además con varios filtros de búsqueda, como puedo solucionarlo?

Muchas gracias de antemano
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 08:01.