génération dynamique de lien
Bonjour,
j'ai dans un tableau une liste d'élément (obtenu avec une requête en AJAX), et je souhaiterai pour chaque élément créer une ligne dans un tableau avec 2 cellules, dans la première un lien avec un onclick() qui appelle une fonction javascript dans la page, et une deuxième cellule avec uniquement du texte.
J'ai un problème avec le lien, je sais pas trop comment expliquer ça, voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| while (i < long)
{
// on récupère les infos du noeud courant dans le xml
var id = listeIng[i].getElementsByTagName("id")[0].firstChild.nodeValue;
var nom = listeIng[i].getElementsByTagName("nom")[0].firstChild.nodeValue;
var famille = listeIng[i].getElementsByTagName("famille")[0].firstChild.nodeValue;
i++;
// ligne
var row = document.getElementById("liste_ing_small").insertRow(-1);
// cell 1
var TD_nom = row.insertCell(-1);
TD_nom.className = 'col_ing';
// lien vers ajout
var lien = document.createElement("a");
lien.href = "#";
lien.onclick = function(){ajout(id)};
var TXT_nom = document.createTextNode (nom);
lien.appendChild (TXT_nom);
TD_nom.appendChild(lien);
// cell 2
var TD_fam = row.insertCell(-1);
var TXT_fam = document.createTextNode (famille);
TD_fam.className = 'col_famille';
TD_fam.appendChild (TXT_fam);
} |
Pour chaque élément de la liste les variables nom, id et famille ont une valeur différente.
Pas de problème pour la cellule 2, sur chaque ligne j'affiche une valeur différente.
Par contre pour le lien onclick, le lien se créé bien, mais le paramètre "id" est toujours le même, c'est le dernier de la liste.
Un exemple, si j'ai 3 éléments :
id=1, nom=nom1, fam=fam1
id=2, nom=nom2, fam=fam2
id=3, nom=nom3, fam=fam3
Les 3 lignes que je rajoute seront comme ça :
Code:
1 2 3 4 5 6 7 8 9 10 11
| <tr>
<td><a href="#" onclick="ajout(3)">Nom1</a></td>
<td>Fam1</td>
</tr>
<tr>
<td><a href="#" onclick="ajout(3)">Nom2</a></td>
<td>Fam2</td></tr>
<tr>
<td><a href="#" onclick="ajout(3)">Nom3</a></td>
<td>Fam3</td>
</tr> |
Comment pourrais je faire pour que ce paramètre varie aussi ?
Merci
(en espérant avoir étais clair)