|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : novembre 2004 Messages : 398 ![]() |
Bonjour
Je développe une application web avec ZF. Plusieurs action permettent l'affichage de données. Et pour éviter d'avoir des centaines de lignes affichées sur une seule page, j'ai mis en place un système de paginations basé, globalement, sur le même principe que ce tuto : http://julien-pauli.developpez.com/t...istage-tables/ . Jusqu'à présent tout fonctionne parfaitement. Mais je souhaite ajouter, pour les actions devant afficher beaucoup de données, un formulaire permettant de rechercher/filtrer les données selon certains critères (date, nom, ...). J'ai donc ajouté un formulaire et une fonction dans mon contrôleur (en réalité le contrôleur parent de tous mes contrôleurs) qui va traiter les données du formulaire et exécuter la requête en conséquence. Voilà, ici encore, ça fonctionne plutôt bien. Les problèmes surviennent lorsque la pagination est utilisé parallèlement à la fonction de recherche. En gros tout fonctionne uniquement si je me trouve sur la première page. Exemple du problème qui se pose : Mes URL sont semblable à ceci : www.truc.com/module/controleur/action et lorsque la pagination est utilisée : www.truc.com/module/controleur/action/page/1 www.truc.com/module/controleur/action/page/2 ... L'url de l'action à exécuter par le formulaire est déterminée par : Ce qui fait que si j'envoie le formulaire alors que je me trouve, disons, sur la page 3, j'aurai au final la page trois affichée. Même si je n'ai pas trois pages de résultats après recherche. Mes idées pour éviter ce genre de problème : vérifier si la requête est de type GET ou POST. Si c'est POST c'est que le formulaire a été envoyé, il s'agit d'une recherche et donc réduction de l'url www.truc.com/module/controleur/action/page/2 à www.truc.com/module/controleur/action Mais il y a un autre problème. si la recherche me donne effectivement plusieurs page et que je passe à la page suivante la recherche sera perdue et j'aurai à nouveau la totalité des enregistrements. Pour ce problème-ci, je pense enregistrer les données du formulaire en session et les récupérer lors du passage à la page suivante. j'aurais donc quelque chose du genre : Code :
Voilà mes idées actuelles. Mais je suis débutant avec ZF, donc je me demandais s'il y avait un moyen de gérer ce type de recherche plus facilement Merci d'avance pour vos commentaire |
||
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Développeur Web Inscription : mai 2008 Messages : 185 ![]() |
Bonjour,
J'ai eu pendant un temps le même souci, 3 critères de tri differents pouvant être utilisés en simultanés + pagination Pour résoudre les problèmes d'url, je regenère des url spéciales pour chaque critère de tri dans ma vue ( je lui assign tous les paramètres pour les récuperer ) Donc par exemple je veux un tri ( date ou nom ), puis avoir la page 2, je fais une url ou j'ai <base>?order=date, et une autre ou j'ai <base>? Ensuite, à l'endroit ou je dois avoir les liens, je réutilise ces liens, c'est à dire : si on est dans le cas pour changer de tri, je reprends <base>?, et j'ajoute &tri=date ou &tri=nom, si on est dans le cas d'un changement de page, je reprends <base>?order=date, et j'ajoute &page=x Bon, c'est sur, c'est pas générique, pas évolutif, mais ca marche @_@ En esperant que tu ais compris l'idée Bonne chance ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com