Transmettre une value avec liste déroulante d'une requête php

Résolu/Fermé
kaeliss Messages postés 4 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 27 février 2013 - Modifié par kaeliss le 27/02/2013 à 17:52
kaeliss Messages postés 4 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 27 février 2013 - 27 févr. 2013 à 19:27
Bonjour,


mon projet est de réaliser un jeu. et actuellement je plante sur une transmission de valeur via une liste déroulante. je présente mon code pour que sa soit plus explicite, il s'agit d'un affichage d'une liste d'objets:



while($row = mysql_fetch_array($req)) { 

echo $row["nomObjet"]; 

echo '<select name="equipe" id="equipe" onchange="equipeItem();"> 
<option value=" "> </option> 
<option value='.$row['id_inventaire'].'> équiper </option> 
</select>' 
} 


je vous ai passé toutes les caractéristiques de l'objet. En résumé dans mon select je voudrais attribuer la valeur de l'identifiant de l'objet au deuxième choix du menu déroulant.
La requête affiche bien toutes les caractéristiques de chaque objet donc pas de soucis la dessus.

Ensuite je renvoi la valeur de l'identifiant dans une fonction javascript:


    function equipeItem() { 
    var equipe = document.getElementById("equipe").value; 

    alert(equipe); 
     
    } 



et la je peux vérifier que seul le premier identifiant peu être récupéré. les autres ayant une valeur nulle.

Je pense que le problème peut venir du getElementById, étant donné que chaque select aura le même id, il ne vérifie que le premier? ce n'est qu'une supposition et je n'arrive pas à m'en sortir...

si quelqu'un a une idée, ou si vous pensez que je me suis mal exprimé, j'attends vos réponses! merci
A voir également:

1 réponse

roptat Messages postés 275 Date d'inscription samedi 20 octobre 2012 Statut Membre Dernière intervention 26 juillet 2013 77
27 févr. 2013 à 18:06
Un id, c'est sensé être unique en html. Ton code produit n'est pas valide. Javascript ne récupère que le premier id (puisqu'il est sensé être unique...). De toute façon, s'il ne le faisait pas, que voudrais-tu qu'il prenne ? il en choisirait un au hasard ? Éventuellement, donne à chaque select un id unique avec l'id de l'objet :
<select name="equipe" id="equipe'.$row['id_inventaire'].'" onchange="equipeItem();"> 

Ceci devrait donner un id unique à chaque champ. Le champ appelant peut être récupéré par :
onchange="equipeItem(this);"

puis pour le javascript,
function equipeItem(i) { 
    var equipe = i.value; 

    alert(equipe); 
     
} 


By the way, d'après la documentation php : « This extension [mysql_] is deprecated as of PHP 5.5.0 ». Tu devrait rapidement te mettre à PDO ou MySQLi
0
kaeliss Messages postés 4 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 27 février 2013
27 févr. 2013 à 18:27
merci! ta solution marche parfaitement.
cependant je n'ai jamais manipulé les this en php, par quel moyen récupère t-il l'identifiant? par le champ id?
0
roptat Messages postés 275 Date d'inscription samedi 20 octobre 2012 Statut Membre Dernière intervention 26 juillet 2013 77
27 févr. 2013 à 18:36
c'est javascript qui récupère le this. This fait référence à l'objet appelant (ici le champ spécifique). Comme il est envoyé à la fonction, la variable i contient le this synonyme de « champ equipeN ». C'est un objet comme celui qui aurait été créé par document.getElementById("equipeN")
Le champ id est en fait inutile ici, puisque l'objet est récupéré directement.
0
kaeliss Messages postés 4 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 27 février 2013
27 févr. 2013 à 19:27
dak! en tout cas merci sa m'a bien débloqué
0