JavaScript PHP traiter liste déroulante

Résolu/Fermé
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 - 1 juin 2010 à 13:02
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 - 1 juin 2010 à 17:58
Bonjour,

J'ai un formulaire contenant une liste déroulante puis des zones de texte. La valeur de mes zones de texte est le résultat d'une requête. Cette requête a pour condition la valeur de ma liste déroulante.

Je voudrais qu'au simple clic de la zone déroulante, mes zones de texte changent de valeur. Pour se faire, la plupart des internautes m'ont dit qu'on ne pouvait le faire qu'avec de l'Ajax. Seulement, je ne sais pas du tout l'utiliser, et de plus, quelqu'un m'a dit que l'on pouvait le faire seulement avec du JavaScript...

Je pense que la méthode à utiliser est la suivante: récupérer la valeur de la liste déroulante dans une variable JavaScript, Enregistrer cette valeur dans une variable PHP, Rediriger vers la page actuelle avec un S_GET contenant la valeur de la variable, (tout cela au simple clic sur la liste déroulante, donc tout cela je pense en JavaScript....) puis Enregistrer ce $_GET dans une variable PHP pour ensuite la traiter dans les requêtes de mes zones de texte.


Bref, est ce que ma méthode est possible ? Et pouvez vous m'expliquer le code pour effectuer tout ça...

Merci.



4 réponses

duweb Messages postés 353 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
1 juin 2010 à 13:46
"...Bref, est ce que ma méthode est possible ?..." : oui mais complexité inutile

- en ajax ou en javascript : tout dépend d'ou vient la donnée à afficher. si c'est pourafficher la valeur de la liste, javascript suffit. si c'est pourafficher la donnée d'une base de donnée sans recherger la page,il faut utiliser ajax.

voici un code correspodnant à ce que j'ai pu comprendre de la question
<script type="text/javascript" language="javascript"> 
function afficher(texte){
    document.getElementById("mon_texte").value=texte;
}
</script>

<form method="post" action="">
<select name="liste" onchange="afficher(this.value);">
<option value="aaa">a</option>
<option value="bbb">b</option>
<option value="ccc">c</option>
</select>

<input type="text" name="mon_texte" id="mon_texte" value="" />
</form>

-
4
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
1 juin 2010 à 14:22
En fait, j'ai deux formulaire à faire...

Le premier est un formulaire où le choix de la liste déroulante déterminera la condition de ma requête, cette requête me permet en effet de récupérer des données de ma BDD. Donc, d'après ce que tu dis il faut de l'ajax pour ce formulaire, alors je vais abandonner cette idée et essayé de traiter ce formulaire autrement.


Cependant, je pense que d'utiliser uniquement du javascript pour mon deuxième formulaire est possible. J'explique son fonctionnement: L'utilisateur choisit une valeur dans une première liste déroulante (un nomcategorie). Ma seconde liste déroulante contient par défaut toutes les données possibles d'une table (toutes les souscategories). Il faut que selon le choix de la première liste, je fasse passer certaines valeur en style=display:none (c'est à dire je veux ne pas afficher les sous categories qui ne correspondent pas à la catégorie choisit) . Je pense que c'est le même principe que le code que tu viens de me montrer, mais je n'arrive pas à trouver le code adéquat pour ma deuxième liste déroulante...
1
duweb Messages postés 353 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
1 juin 2010 à 17:53
recherche "chained select" pour trouver des scripts correspondants

sans ajax
https://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

avec ajax + php+mysql
https://remysharp.com/2007/09/18/auto-populate-multiple-select-boxes/
1
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
1 juin 2010 à 17:58
Même si la page est en anglais, c'est un très bon lien que tu m'as donné et puis ça ne fait pas de mal de travailler sur un doc en anglais ;) Merci à toi !
1