|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 14 ![]() |
Bonjour a tous,
Voila en fait j'ai plusieurs formulaires sur une même page. Sur le premier l'utilisateur rentre les informations sur les autres, ce sont des boutons cachés qui envoient les informations. Mais j'aimerais que le second formulaire récupère également les informations rentré sur le premier. Au final j'ai plusieurs bouton submit, un pour chaque formulaire, ainsi l'utilisateur navigue entre différentes pages, peut même retourner sur certaines et retrouver les valeurs qu'il y avait entré etc. M'étant renseigné sur le forum j'ai cru comprendre qu'imbriquer les formulaires entre eux, qui semblait être la bonne solution, n'est pas possible. Mais par contre il est possible d'avoir plusieurs boutons submit. Mais je ne vois pas comment faire pour que chaque bouton envoie chacun sur une page différente, et qu'ainsi l'utilisateur choisissent où il veut aller. |
|
|
00
|
|
|
#2 | ||
|
Membre chevronné
![]() Taoufiq BenDéveloppeur Web Inscription : mai 2009 Messages : 456 ![]() |
Crée seulement un formulaire au Click des buttons tu définit ou le formulaire va être envoyer avec du js puis et tu submit
Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Evite de faire envoyer tes formulaires par Javascript, c'est très sale. Je te conseillerai plutôt de grouper tous tes formulaires en un seul et de mettre plusieurs bouttons submit avec des values différentes (si les noms te posent problème utilise des buttons au lieur d'inputs). Pour rassembler les informations de plusieurs formulaires en un seul, tu peux te servir des fieldset! Prennons un exemple: Code :
ensuite, tu fais des include ou une redirection, enfin ce qui t'arrange... Voilà comment je m'y serais pris, maintenant c'est peut être pas adaptable à ton cas. Si c'est vraiment trop spécifique, tu peux envisage d'utiliser du js mais je ne saurais que trop te de le déconseiller.
__________________
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 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 14 ![]() |
Merci pour vos réponse.
J'ai eu l'idée entre 12h et 14h de faire comme tu disais Benjamin. Une fois le premier formulaire remplit, la personne est envoyé sur une seule page php, mais celle ci, vérifie quel bouton submit à été cliquéet montre la page correspondante tout ca avec if et include. Mon problème maintenant est de trouver comment conserver les informations rentré dans chaque formulaire de manière à ce que l'utilisateur qui remplit le formulaire page 1, va sur page2 puis retourne sur page 1, retrouve les informations qu'il avait inséré. Sachant qu'il y a 6 pages donc beaucoup de combinaisons possible et que j'aimerai laisser à l'utilisateur la possibilité de navigué entre les formulaire de manière à voir les informations qu'il devra rentré je ne vois pas trop comment faire. Vous avez des idées ? J'imagine quelque chose du genre, vérifier si chacune des lignes du formulaire a été remplit ou non, si non on continue de naviguer tranquillement, à partir du moment où l'utilisateur a rentré une donnée dans un des formulaire on commence a les stocké et a passé les variables entre les pages jusqu'au bouton sauvegardé mais ca laisse encore un grand nombre de combinaisons... |
|
|
00
|
|
|
#5 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Tu peux sauvegarder les données du formulaire sur la session par exemple si l'utilisateur traverse plusieurs pages entre deux formulaires. Sinon, et je pense que ce sera le cas, il te suffira d'utiliser les données dans $_POST (pas de souci avec les include ou require, c'est une variable superglobale) pour remplir le formulaire de la page b avec les données saisies sur la page a - après les avoir nettoyées cela va sans dire. Cela ne fonctionnera pas si l'utilisateur reviens sur la page a sans soumettre le formulaire de la page b (avec le boutton retour du navigateur par exemple). A ce moment là, tu peux mettre les données sur la session (pense à utiliser un token pour pas te perdre).
__________________
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
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 14 ![]() |
Oh pour etre perdu je pense que je vais l'être... je n'y connais rien encore au niveau php sur les session, et j'ai meme pas encore de zone membre ou quoi que ce soit, donc va falloir que je créer ca avant de continué mon formulaire j'ai l'impression >_<
|
|
|
00
|
|
|
#7 | ||||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
J'ai l'impression que quand on dit "session" les gens comprennent "gestion de membres". Ce n'est pas forcément le cas.
Une session est utilsée par Apache et PHP pour identifier un visiteur. Elle permettent entre autre la création d'une structure (sous PHP, la variable superglobale $_SESSION) dans laquelle des données pour un visiteur donné pourront être stockées. Ces sessions ont une durée de vie définie dans les fichiers de configuration (la plupart du temps tu n'as pas besoin d'y toucher) et sont uniques pour chaque utilisateur. Démarer et utiliser une session en PHP est un jeu d'enfant: Code :
Code :
Code :
N'oublie pas: en PHP, l'accès à un champ de tableau non initialisé au préalable provoque une erreur E_WARNING, bien que ces erreurs ne soient pas bloquantes, il est d'usage de les éviter en mettant Code :
Regarde les nombreux tutoriels sur le net sur la question pour te faire une idée.
__________________
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
|
|
|
#8 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 14 ![]() |
Effectivement il semble que je partais déjà sur une mauvaise idée sur les session.
le code récupérera en meme temps toute les données envoyé par la méthode post ? Je vais me renseigner beaucoup plus sur le domaine des session php |
|
|
00
|
|
|
#9 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Oui ce code va mettre toutes es données reçues en post pour la requête en cours dans la variable de session effectivement.
Je te conseille d'appliquer un traitement sur les éléments de $_POST pour éviter les failles de sécurité. Petit rappel: $_POST, $_GET, $_SESSION, $_REQUEST, $_SERVEUR sont toutes des tableaux!
__________________
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
|
|
|
#10 | ||||
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 14 ![]() |
donc si je comprend bien, si par la suite je fais ceci sur la page cible:
Code :
Puis si il retourne sur la première page : Code :
|
||||
|
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
T'as compris la logique, à toi de jouer maintenant.
Juste un détail, mettre des isset suivis de empty est inutile: empty à le comportement de isset (il renverra false si la variable n'est pas initialisée et ne déclenchera pas d'erreur). Donc: suffit.
__________________
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
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 14 ![]() |
Par contre il y a un truc que je ne comprend pas :
Code :
Si la personne a cliqué sur le bouton SP et que quelque chose avait déja été rentré, on montre la page sp2 (qui montera les données envoyé précédemment), par contre si rien n'a été rentré mais qu'il a cliqué sur SP on montre le formulaire sp1 qui est le formulaire de base. Seulement après quelques test, ce code me ramène toujours à SP1 |
||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 14 ![]() |
C'est bon je viens de comprendre (oui une journée complete la dessus -_-)
session start doit etre invoqué sur chaque page où l'on veut se passer les variables |
|
|
00
|
|
|
#14 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
__________________
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
|
Copyright © 2000-2012 - www.developpez.com