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
Partager