Utiliser l'objet document avec une variable passée en paramètre

Résolu
XBenny Messages postés 3 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 30 septembre 2009 - 28 sept. 2009 à 21:06
XBenny Messages postés 3 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 30 septembre 2009 - 30 sept. 2009 à 20:43
Boujour à tous,
Je plante le décor : J'ai un javascript qui me permet de remplir un "select" (selectAOut) en fonction d'un autre "select" (selectAIn). Ce code fonctionne très bien :

[i]function changeliste() {
choix=document.monform.selectAIn.value
t="<select name='message'>"
for(i=0;i<liste[choix].length-1;i++)
t+="<option>"+liste[choix][i]+"</option>"
document.monform.selectAOut.outerHTML=t+"</select>"
}/i

Mon problème est que j'aimerais utiliser plusieurs "select" différents et donc j'ai une boucle "for" dans mon php et j'aimerais passer en paramètre le nom de mes "select" et les récupérer dans mon script
(par ex: changeliste(a,b))
et donc modifier
"document.monform.selectAIn.value" par quelque chose du genre
"document.monform.a.value"
où "a" est le 1er paramètre et
"document.monform.b.outerHTML" où "b" est mon 2ème paramètre. Et là, ça coince !!!

J'ai essayé avec "document.getElementById(a).value" et "document.getElementById(b).outerHTML". Ca marche, lors du 1er choix dans la première liste, la 2ème liste se charge bien, mais et si je veux choisir une autre ligne de la 1ère liste par la suite, la 2ème ne se modifie plus et garde le résultat précédent. J'espère que je me suis bien fait comprendre.

Merci pour votre aide.

Mieux vaut poser une question et passer pour un con un jour, que se taire est le rester pour toujours  . XBenny.

1 réponse

XBenny Messages postés 3 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 30 septembre 2009
30 sept. 2009 à 20:43
Je me reponds à moi-même:

Le problème venait de la construction du 2ème "select" avec le javascript, dont voici le code AVANT correction de l'erreur:

[i]function changeliste() {
choix=document.monform.selectAIn.value
t="<select name='message'>"
for(i=0;i<liste[choix].length-1;i++)
t+="<option>"+liste[choix][i]+"</option>"
document.monform.selectAOut.outerHTML=t+"</select>"
}/i

Vu que j'ai utilisé un getElementById, beh y avait plus de "id" après avoir fait un premier choix. Ca marchait au premier choix car dans mon code php au chargement de la page j'avais ce code :

[i]echo'<select size="1" id="message'.$i.'" name="message[]">';
echo'<option>Choisir d\'abord la station</option>';
echo'</select></td>';/i

Problème résolu de cette façon:

[i]function changeliste(a,b) {
choix=document.getElementById(a).value
t="<select id='"+b+"' name='message[]'>"
for(i=0;i<liste[choix].length-1;i++)
t+="<option>"+liste[choix][i]+"</option>"
document.getElementById(b).outerHTML=t+"</select>"
}/i

Si ça peut aider quelqu'un....


Mieux vaut poser une question et passer pour un con un jour, que se taire est le rester pour toujours  . XBenny.
3
Rejoignez-nous