Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2011, 02h08   #1
Nouveau Membre du Club
 
Étudiant
Inscription : avril 2009
Messages : 58
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2009
Messages : 58
Points : 29
Points : 29
Par défaut Conservation données formulaire lors changement page

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.
_concept_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 07h23   #2
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
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.
ABCIWEB est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 11h45   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 988
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 988
Points : 5 022
Points : 5 022
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
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 01h07   #4
Nouveau Membre du Club
 
Étudiant
Inscription : avril 2009
Messages : 58
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2009
Messages : 58
Points : 29
Points : 29
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!
_concept_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h59.


 
 
 
 
Partenaires

Hébergement Web