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

JavaScript Discussion :

Modifier une majorité des champs d'un formulaire en fonction de la sélection dans une liste déroulante


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    votre choix
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : votre choix

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Modifier une majorité des champs d'un formulaire en fonction de la sélection dans une liste déroulante
    Bonjour à tous mes très chers frères et sœurettes !

    Alors comme l'intitulé de ce post l'indique, je cherche à modifier plusieurs champs d'un formulaire automatiquement en fonction de la sélection de l'utilisateur dans une liste déroulante.
    Donc, pour faire simple, dans mon formulaire, il y a disons une moitié des champs qui sont généralement les mêmes pour tous les enregistrements.
    J'ai donc créé une table ParametresPredefinis avec des colonnes correspondant à chacun de ces champs du formulaire (+ un ID).

    Ma liste déroulante sert donc à sélectionner une de ces "Prédefinitions" et à remplir chacun des champs du formulaire avec les infos de la "Prédéfinition" sélectionnée.
    J'ai déjà réussi à le faire en n'utilisant simplement que du PHP, c'est à dire qu'à l'évènement "onChange" de ma liste déroulante : je recharge ma page et passe dans l'url une variable idParamPredef avec comme valeur l'id de la prédéfinition (donc la value de l'option sélectionnée dans la liste déroulante) et ensuite, comme idParamPredef est renseigné, au chargement de la page mon code php remplissait les champs comme il fallait.

    MAIS LE PROBLEME, c'est la seconde moitié du formulaire, cela réinitialise tous les champs et tous les utilisateurs de mon site se plaignent de devoir remplir deux fois une partie du formulaire car une fonctionnalité qui n'est pas au point, efface ce qu'ils avaient déjà remplis. Donc au final, ma fonctionnalité est sensée permettre de remplir une moitié du formulaire très rapidement, elle le fait, mais elle rend l'autre moitié deux fois plus longue à remplir ...

    Je pense donc devoir utiliser Javascript, et n'étant pas beaucoup habitué au web, j'aimerai qu'on m'aiguille un peu ..
    Dois-je charger tous mes "Prédéfinitions" dès le chargement de la page dans un array et ensuite piocher dans cet array au changement de la liste déroulante ? Ou alors puis-je utiliser PHP après la sélection pour récupérer toutes les infos nécessaires sans avoir à recharger la page ? Je me pose aussi des questions sur la méthode de mise en place du Listener de l'event onChange dema liste déroulante ... Est-ce mieux d'utiliser la propriété "onChange" de ma balise <select>, ou est-ce mieux de créer un listener sur l'élément en utilisant getElementById ? Je suis un peu perdu A L'AIDE

    Merci d'avance, je vous aime

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu as 2 solutions.

    Solution 1 : "simple"
    • tu affiches d'abord seulement le <select>, qui est censé remplir automatiquement des champs APRES "onchange" (qui, soit dit en passant, est du JavaScript, pas du PHP !)
    • sur le onchange -> rechargement de la page, traitement PHP -> tu affiches tout le formulaire


    Solution 2 : Ajax

    Ajax permet de recharger uniquement une partie de la page, après avoir transmis, via JS/Ajax, des données à un fichier EXTERNE (traitement PHP,...)
    C'est évidemment, cette 2ème solution qui est à privilégier, puisqu'elle est "user-friendly" !

    Pour comprendre le fonctionnement d'Ajax, je te conseille ce tuto : Web 2.0, allez plus loin avec AJAX et XMLHttpRequest
    • LIS le tuto (!)
    • et surtout, FAIS L'EXERCICE proposé

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/08/2019, 16h26
  2. [MySQL] Afficher le résultat d'une sélection dans deux listes déroulantes d'un formulaire
    Par ritouthai dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/09/2013, 09h14
  3. [MySQL] afficher des champs d'un formulaire en fonction d'une liste déroulante
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 08/10/2009, 12h31
  4. Réponses: 5
    Dernier message: 17/10/2007, 18h17
  5. Modifier une liste déroulante (Combobox)
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2007, 12h22

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