|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : avril 2009 Messages : 58 ![]() |
Bonjour à tous,
voilà mon problème: j'ai un formulaire permettant de trier une liste de données en fonction de plusieurs listes déroulantes dont les valeurs sont conservées à chaque modification de ce tri grâce à "selected=selected". L'inconvénient est que les données triées sont limité à un certain nombre par page grâce à un système de pagination et quand on décide de changer de page, les données choisies des listes déroulantes sont perdues (logique) on se retrouve donc avec les données non triées. J'aimerais savoir s'il existe un moyen simple de conserver les données de ce formulaire à chaque changement de page (en fait l'url reste le même il y a juste un indice de pagination de type numero_page=5 en paramètre mais je pense pas que ça change grand chose). J'ai pensé à utiliser les sessions avec serialize() sur les donnée $_POST puis un unserialize() qu'on réinjecterait dans les données $_POST sur l'autre page mais je sais pas si cette méthode est à préconiser (d'ailleurs je sais même pas si elle marche...). Merci de votre aide. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 242 ![]() |
Classiquement on enregistre les post dans des variables de sessions que l'on utilise pour remplir les champs du formulaire lors des prochains affichages. Tu peux faire pareil pour tes champs de recherche.
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
00
|
|
|
#3 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 988 ![]() |
Imaginons un instant que le filtre déclenche une requêtes MySQL qui comporte les critères de filtrage dans la clause WHERE plus une clause LIMIT pour la pagination. Le mieux à faire dans ton cas serait de sauvegarder 2 choses:
- la requête initiale avec la clause WHERE dûment renseignée - le numéro page en cours (initialement 0) Tu mets ça dans une structure (un bête tableau fera l'affaire) sur SESSION et tu lui donne un token pour l'identifier, c'est ce token que tu fera transiter de page en page. Ensuite, si la page "n", tu récupère la requête et tu recalcules les bornes à définir dans ta clause LIMIT (en fonction de ton paramètre "page" bien sûr) et tu l'exécute à nouveau. Si tu es à l'aise en objet, tu peux envisager de créer un iterateur sur les résultats de requêtes capable d'encapsuler tout ces traitements et de se sérialiser sur la session (voir __sleep et __wakeup), c'est beaucoup plus pratique de travailler avec des itérators dans ce cas précis.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : avril 2009 Messages : 58 ![]() |
Comme c'est pour un petit site, je vais tout bêtement enregistrer les données POST dans une SESSION comme l'a conseillé ABCIWEB.
Merci de vos réponses! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com