Bonjour, voila tout est dans le titre, je voudrais récupérer la valeur d'un option select par exemple, j'ai ma page panier, et lorsque je change la valeur de mon select, la valeur est récupéré dans une variable.
Merci
Version imprimable
Bonjour, voila tout est dans le titre, je voudrais récupérer la valeur d'un option select par exemple, j'ai ma page panier, et lorsque je change la valeur de mon select, la valeur est récupéré dans une variable.
Merci
Bonjour,
+1 E.Bzz
Ou bien :
C'est plus cross-browserCode:document.getElementById('id_du_select').options[document.getElementById('id_du_select').selectedIndex]value
et la FAQ ????
http://javascript.developpez.com/faq/?page=formChamps
Je n'ai pas dit qu'il n'y avait pas la réponse.
Seulement qu'elle était incomplète : il n'y a qu'une des syntaxes possibles ...
A+
Oui !
Mais eût-il consulté la FAQ auparavant que ce post n'aurait pas existé ;)
merci pour les liens, mais est-il possible de faire ça :
pour pouvoir utiliser la valeur en php ?Code:
1
2 $zone_pays = 'document.getElementById("pays").options[document.getElementById("pays").selectedIndex].value';
Merci
Non, pour pouvoir l'utiliser en PHP, il faut que tu envoies le choix de l'utilisateur au serveur.
Soit en soumettant un form, soit en passant par Ajax ...
A+
javascript ne comprend pas le php et php ne comprend pas le javascript
imagine que ce sont deux langue différente parlées dans deux pièces différentes ...
Tu auras beau cirer du php aussi fort que tu veux dans la pièce javascript (coté client) il ne se passera rien
ok, je commence à comprendre, par contre, même en rechargeant la page, je ne vois pas comment donner la nouvelle valeur au select et surtout comment récupérer l'index par exemple dans une variable. Si quelqu'un aurais un petit script svp, je suis pas très doué en Javascript. Merci d'avance
une piste ...
php ne fait que rediger le html
un simple teste coté php et tu ecris le code htmllà ou il faut ;)Code:selected="selected"
Code PHP :
Code HTML généréCode:$buffer ='<option name = "pays" selected="selected" value="'.$id.'" >'.$texte.'</option>';
javasrcipt:Code:<select name="country_id" id="country_id" onchange="changePays(document.forms['frmPanier'])"return false;" style="width:150px;"><option name = "pays" value="1" >France Métropolitaine</option><option name = "pays" value="2" >Monaco</option><option name = "pays" value="4" >Allemagne</option><option name = "pays" value="5" >Autriche</option><option name = "pays" value="6" ></select>
Il me recharge bien ma page seulement, il me laisse toujours le dernier enregistrement de la table en selectedCode:
1
2
3
4
5
6 function changePays(form) { form.action = "panier.php?update=1"; form.submit(); }
Oui, mais avec le code généré, tu vois bien que :
- Dans le onchange, il y a un problème dans les quottes (") lors de la génération ainsi qu'un ";" manquant
- Tu n'as pas le selected="selected" dans les lignes générées : ton test PHP ne doit pas fonctionner
A+
Après modif ...Code:<select name="country_id" id="country_id" onchange="changePays(document.forms['frmPanier']);" style="width:150px;"><option name = "pays" selected="selected" value="1" >France Métropolitaine</option><option name = "pays" selected="selected" value="2" >Monaco</option><option name = "pays" selected="selected" value="4" >Allemagne</option><option name = "pays" selected="selected" value="5" >Autriche</option><option name = "pays" selected="selected" value="6" >Danemark</option><option name = "pays" selected="selected" value="7" >Espagne</option></select>
Plus de problème de syntaxe, mais ton selected="selected" est présent sur toutes les lignes : ton test PHP ne fonctionne toujours pas.
Par contre, tu peux enlever le name des options : ça ne sert pas ;)
A+
Une question certainement bête : pourquoi gérer un onchange sur le select ?
Il suffirait de récupérer (côté PHP) la value du select quand tu traites ton form (sous réserve qu'il soit inclus dans le formulaire) ...
A+
c'est normal que le selected est présent sur toutes les lignes car il faut bien que je le mette dans le option value? Et vu que les lignes sont créer dynamiquement, chaque ligne prend la propriété selected ..., non?
en fait, ce code est utiliser pour un panier, et la liste de choix permet de choisir le pays dans le quel sera livré le colis, et a afficher dinamiquement le frais de port, sans changer de page
Heu ... dis comme ça oui, mais c'est plus compliqué :calim2:
Si tu les mets partout, c'est comme ... s'il n'y en avait aucun (ici selected = "la ligne sélectionnée").
Je résume :
- l'utilisateur fait un choix dans la liste
- le formulaire est envoyé au serveur
- le serveur génères une nouvelle page (éventuellement la même) avec la bonne valeur sélectionnée
Dans ton PHP, il faut que, en 3), tu récupères la valeur choisie en 1)
Dans ta boucle des options, tu testes si la value de l'option en cours d'ajout est égale à celle récupérée.
Si c'est le cas tu génères (en plus du reste) le selected="selected" pour la nouvelle option.
Dans les autres cas tu génères l'option sans le selected="selected"
A+
Juste pour dire que la seule et unique méthode qu'on doit retenir pour récupérer le value d'un select est :
l'ancienne méthodeCode:
1
2select.value
est faite pour les tres tres vieux browsers (IE 5.0 et inférieurs) donc vous pouvez l'oublier.Code:
1
2 select.options[select.selectedIndex].value