supprimer un élément dans un tableau "associatif"
Bonjour :mrgreen:,
Je me heurte à un nouveau problème que voici :
Je suis en train de créer une page où je gère l'ajout et la suppression de ligne dans un tableau (physique) via DOM.
J'ai une partie du tableau qui est statique et une autre partie du tableau où je peux ajouter des lignes et les supprimer. Ca j'arrive à le faire il n'y a pas de soucis.
Pour ma partie dynamique, j'associe les valeurs de mes champs à un tableau "associatif".
J'essaie de supprimer une ligne de ce tableau mais sans succès...
Voici mon 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| function addParam() {
if (tableParam == null)
tableParam = new Array();
var indice = tableParam.length;
alert('indice : '+indice);
tableParam[indice] = new Array();
tableParam[indice]["name"] = "name"+indice;
tableParam[indice]["env"] = "env"+indice;
tableParam[indice]["serv"]= "serv"+indice;
tableParam[indice]["meth"]= "meth"+indice;
tableParam[indice]["input"]= "input"+indice;
tableParam[indice]["exp"]= "exp"+indice;
tableParam[indice]["timeout"]= "timeout"+indice;
var text = "";
for (var i=0;i<tableParam.length;i++) {
text += "tableParam "+i+"\n\n";
for (var propriete in tableParam[i])
text += propriete + " : "+tableParam[i][propriete]+"\n";
alert(text);
text = "";
}
}
function removeAdd(bouton) {
var node = bouton.parentNode.parentNode;
var parent = node.parentNode;
parent.removeChild(node);
alert('node : '+node.id+', taille tableParam : '+tableParam.length);
//Méthode 1
//delete tableParam[node.id];
//Méthode 2
//tableParam.splice(node.id, node.id);
//Méthode 3
/*
for (i = node.id; i < tableParam.length; i++) {
alert('tableParam[i] : '+tableParam[i]+', tableParam[i+1] : +tableParam[i+1]);
tableParam[i] = tableParam[i+1];
}
tableParam.pop();
*/
var text = "";
for (var i=0;i<tableParam.length;i++) {
text += "tableParam "+i+"\n\n";
for (var propriete in tableParam[i])
text += propriete + " : "+tableParam[i][propriete]+"\n";
alert(text);
text = "";
}
} |
La méthode 1 est celle qui fonctionne le mieux je dirai... Elle ne me supprime pas réellement la ligne mais me vide le contenu du "sous-tableau", par contre quand je supprime une ligne, que j'en ajoute une etc. les indices sont décalés et mes suppressions ne fonctionnent plus...
La méthode 2 qui m'avait l'air pas mal, car d'après ce que j'ai vu sur le net, pas besoin de redécaler à chaque fois, mais ça ne fonctionne pas vraiment...
La méthode 3 ne connaît pas une grande réussite non plus...
comment dois-je m'y prendre ?