|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 79 ![]() |
Bonjour,
Je développe une page avec une liste déroulante qui contient des produits et une zone de texte (désactivée) dans laquelle le prix du produit doit être affiché. AJAX intervient au moment où on sélectionne un item de la liste, la zone de texte affiche alors le prix correspondant. Le formulaire contient un bouton qui permet d'ajouter d'autres listes déroulantes et zones de texte. Suite à un autre post sur le forum, j'ai choisi de dupliquer la ligne au moyen de cloneNode (fonction ajouter() dans le fichier php). Or la fonction affich_prix() qui fait appel à AJAX ne fonctionne que pour les premiers éléments de formulaire (atteints par leur id). Il faudrait donc que ma fonction "connaisse" l'id de la liste pour laquelle on vient de sélectionner un item. J'avais pensé passer this.id en paramètre de la fonction appelée via onchange, et passer cet argument aux getElementById, mais ça ne fonctionne pas. Voici les différents codes. La page php sans ma tentative de this.id Code :
Code :
|
||||
|
|
00
|
|
|
#2 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Un id doit être unique dans la page !
Lorsque tu fais ton cloneNode(), il faut que tu modifies son id afin qu'il soit unique. Ceci dit Citation:
![]() Plutôt que de passer this.id pour ensuite retrouver l'élément dont l'id correspond, pourquoi ne pas passer tout simplement this et avoir directement cet élément ?
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2010 Messages : 79 ![]() |
Bovino, merci pour tes réponses !
Dans la fonction ajouter(), il y avait deux lignes superflues, mais surtout j'avais oublié de modifier l'id du <select> nouvellement ajouté. En parallèle à cela, j'ai changé l'argument passé à la fonction affich_prix() de this.id à this. Le code fonctionne maintenant (testé sous FF 8.0 et IE 8). Voilà la version finale (la partie ajax reste la même que plus haut) : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com