Données de formulaire dynamique / onChange

Fermé
reedbedroom - 8 sept. 2010 à 12:21
 reedbedroom - 8 sept. 2010 à 14:02
Bonjour,

Je cherche à rendre mon formulaire dynamique. Je m'explique.

Dans mon formulaire, l'internaute peut choisir une marque dans une list. J'aimerais qu'à la suite de cette sélection, la liste "Verres" n'affiche que le contenue correspondant à la marque choisie par le client.

Mes données sont stockés en base de données. Il me faudrait donc pouvoir exécuter ma requête après avoir récupérer le champs "Marque", le tout sans quitter la page bien évidement.

Merci de toute l'aide que vous pourrez m'apporter ;)

1 réponse

Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
Modifié par Stouffi le 8/09/2010 à 12:36
Salut,

Tu veux envoyer une requête à ta base sans recharger la page, tu devrais t'orienter sur l'Ajax. tu auras besoin de JavaScript bien sûr, et de connaître l'Ajax. De plus la bibliothèque jQuery (https://jquery.com/) te permettra de te faciliter la mise en oeuvre. Besoin de plus de précisions ? (dans ce cas faudra préciser le langage serveur utilisé, PHP ? Java ? autre ?)

Bye
0
Effectivement, je suis en PHP ...

Ca ne me dérange pas de recharger la page, mais à première vue, les données du formulaires sont réinitialisés automatiquement à chaque fois que je recharge la page avec onChange. Ce qui ne m'arrange pas du tout.

Il faudrait que je puisse recharger la page en récupérant les données du champs "Marque" sous la forme d'une variable PHP pour l'inclure dans ma requête .

Merci de ton aide.
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
8 sept. 2010 à 13:54
Dans ce cas c'est beaucoup plus simple ^^. Il suffit d'envoyer ta donnée par méthode GET ou POST, dès que la valeur de la drop-down list (le select) change, avec onchange que tu as utilisé.

Exemple par méthode GET (la plus simple) :

<select name="marque" onchange="window.location = 'pageduformulaire.php?marque=' + this.value;">
...
</select>


Exemple par méthode POST (légèrement plus complexe, mais plus propre)
le but est de créer un form (de préférence caché : css => display: none;, contenant un input caché (hidden) que l'on envoie 'onchange'.
<form id="to-send" action="pageduformulaire.php" method="post">
    <input id="marque-id" name="marque" type="hidden" />
</form>
...
<select name="marque" onchange="document.getElementById('marque-id').value = this.value;document.getElementById('to-send').submit();">
...
</select>


Tu récupéreras respectivement $_GET['marque'] ou $_POST['marque'] selon la méthode utilisée.
Après y a plus qu'à faire la quête ^^
0
Ok ! Je pensais bien à truc comme ca mais je ne savai pas trop comment faire... jamais eu ce besoin encore.

Merci je test ça tout de suite ;)
0