Transmettre une value avec liste déroulante d'une requête php [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
mercredi 30 janvier 2013
Statut
Membre
Dernière intervention
27 février 2013
-
Messages postés
4
Date d'inscription
mercredi 30 janvier 2013
Statut
Membre
Dernière intervention
27 février 2013
-
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

1 réponse

Messages postés
277
Date d'inscription
samedi 20 octobre 2012
Statut
Membre
Dernière intervention
26 juillet 2013
67
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
Messages postés
4
Date d'inscription
mercredi 30 janvier 2013
Statut
Membre
Dernière intervention
27 février 2013

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?
Messages postés
277
Date d'inscription
samedi 20 octobre 2012
Statut
Membre
Dernière intervention
26 juillet 2013
67
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.
Messages postés
4
Date d'inscription
mercredi 30 janvier 2013
Statut
Membre
Dernière intervention
27 février 2013

dak! en tout cas merci sa m'a bien débloqué