IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mémoriser les champs d'un formulaire


Sujet :

Langage PHP

  1. #1
    Rédacteur
    Avatar de Yoshidu62
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 294
    Points : 374
    Points
    374
    Par défaut Mémoriser les champs d'un formulaire
    Bonjour, voici mon problème :

    - sur une page se trouve un formulaire avec certains champs obligatoires
    - je vérifie ces champs en javascript
    - lorsque que tout est ok le formulaire est envoyer (POST) sur une page php où à nouveau je vérifie bien que tous les champs sont remplis.
    - si je trouve un champ php non rempli, je fais un header et retourne sur la page avec le formulaire

    Mon problème est qu'en revenant sur le formulaire le contenu de chaques champs n'apparait plus, il faut remplir à nouveau tout le formulaire.
    J'aimerais donc récupérer toutes les valeurs de mes champs lorsque je fais le header, du style :

    header("Location:formulaire.php?champ1=trou&champ2=tru.........");

    Mais en utilisant cette méthode l'url de mon header va être énorme, je trouve pas ça très propre.

    Donc je voulais savoir si il y avait une autre méthode pour remettre le contenu des champs du formulaire.

    Merci.

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pourquoi tu vérifies deux fois les données Pour ceux qui ont désactivé JS ?
    Sinon c'est toujours chiant à faire ces retours, en plus la longueur de l'URL est limitée donc c'est chaud... Sinon il y en a qui contournent ça avec des sessions, ça vaut le coup de creuser par là.

  3. #3
    Rédacteur
    Avatar de Yoshidu62
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 294
    Points : 374
    Points
    374
    Par défaut
    Je le fais en javascript tout d'abord car plus rapide du côté client, mais je le fais également en php (côté serveur) par sécurité et également si l'internaute a désactivé le javascript.

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Oups je viens d'éditer ma précédente réponse

  5. #5
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut
    Au lieu du header, tu peux aussi faire :
    - en une page : un include php de ta page contenant le formulaire. tes vérifications de champs étant fait en début de script...
    - en deux pages : si tes conditions ne sont pas remplis ecrit une page html minimum avec un formulaire (methode post) contenant tout tes champs et renvoi le à ta première page.
    Peut être...

  6. #6
    Membre habitué
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Points : 174
    Points
    174
    Par défaut
    Si tu veux faire ca, met ton tableau POST d'apres formulaire en Session et recupere le ensuite.

  7. #7
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut
    Dans les deux cas il peut être souhaitable de rajouter une variable qui témoigne du retour et de la non validité des données renseignées dans le formulaire et de la nature de la donnée érronée.
    Cela te permet aussi de savoir qu'il faut remplir les champs avec les données précédements renseignées et non les données de la base (ou champs vides).

  8. #8
    Rédacteur
    Avatar de Yoshidu62
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 294
    Points : 374
    Points
    374
    Par défaut
    Merci pour toutes ces explications, je pense qu'avec les variables de session ça devrait aller.

  9. #9
    Rédacteur
    Avatar de Yoshidu62
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 294
    Points : 374
    Points
    374
    Par défaut
    Je réouvre ce post car je rencontre un problème.

    En fait dans mon formulaire j'ai une partie avec des input de type radio, ces input sont liés à des évènements javascript, c'est-à-dire que quand je coche certains d'entre eux (évènement onClick) j'ai un input de typ text qui apparait.

    Mon problème par rapport à la mémorisation des champs du formulaire est le suivant :

    - je récupère bien le nom de l'input radio qui était sélectionné et je le checked
    - je récupère bien le contenu de mon input de type text lié à l'input radio
    - mais comme l'input de type text n'apparait qu'à l'évènement onClick et bien il n'apparait pas lorsque je retourne sur mon formulaire.

    Comment faire pour le faire apparaître?

    Merci.

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Comment tu fais lors du premier affichage de ton formulaire ? C'est la même chose, pas de onClick donc rien d'affiché non ? Tu vas devoir ajouter un bout de code lors de la génération de ton formulaire, en testant quel bouton est sélectionné, et afficher le texte en conséquence.

  11. #11
    Rédacteur
    Avatar de Yoshidu62
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 294
    Points : 374
    Points
    374
    Par défaut
    Petite explication du fonctionnement du formulaire :

    - on arrive sur le formulaire
    - on a 3 boutons radio
    - si je coche le premier il y a une zone de texte qui apparait à coté pour que je puisse entrer une information
    - l'apparation de cette zone de texte se fait en javascript avec l'évènement onClick sur le bouton radio

    - lorsque je valide mon formulaire je récupère bien quel est le bouton radio qui a été sélectionné, et si c'est un bouton radio qui fait apparaître une zone de texte, je récupère également le contenu de cette zone de texte (tout les boutons radios ne font pas apparaitre une zone de texte)

    - maintenant si il y a une erreur sur le formulaire je redirige vers le formulaire et là je dois remplir automatiquement les champs avec les valeurs précédemment données.
    - donc je checked bien le bouton radio correspondant
    - et si c'est un bouton radio qui fait appratitre une zone de texte alors je met bien le contenu de la zone de texte

    Et donc mon problème est ici, mon bouton radio est bien sélectioné, et ma zone de texte contient bien le texte, mais celle-ci n'apparait car pour qu'elle apparaisse il faut déclencher le onClick sur le bouton radio. En gros il faut que je sélectionne un autre bouton radio, puis que je resélectionne le bouton, et là le onClick se déclenche, la zone de texte apparait, et elle contient bien le texte donné auparavant.

    J'espère que c'est assez clair.

  12. #12
    Rédacteur
    Avatar de Yoshidu62
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 294
    Points : 374
    Points
    374
    Par défaut
    Je passe en résolu, j'ai joué avec l'évènement onLoad et ça fonctionne très bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir tous les champs d'un formulaire
    Par killprog dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/03/2006, 13h15
  2. Comment récuperer les champs d'un formulaire?
    Par steeves5 dans le forum Langage
    Réponses: 5
    Dernier message: 08/02/2006, 10h54
  3. [DREAMWEAVER 8] Comment tester les champs d'un formulaire
    Par steeves5 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/02/2006, 21h43
  4. Réponses: 4
    Dernier message: 16/09/2005, 14h27
  5. Réponses: 18
    Dernier message: 22/10/2004, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo