bonjour à tous ....

voila j'ai créé un tableau de donnée.

il est composé comme cela :
1ere colonne : un identifiant
2nd colonne : le type (Element ou attribut)
3em colonne : le nom
4em colonne : la valeur
5em colonne : l'élement père (valable que pour les éléments)
6em colonne : la profondeur (le premier element est de profondeur 1)
7em colonne : un identifiant de l'élément à remplacer.

j'explique ce dernier identifiant :
ce tableau est le résultat d'une génération de formulaire via de l'AJAX où l'utilisateur peut dans certains cas vouloir x copie d'un élément et de son contenu. Dans ce cas, l'AJAX génère les X copies et ajoute les X lignes dans le tableau.
Mais il n'efface pas le groupe de zones qui sont remplacés par des nouvelles...

Un attribut est lié à l'élément qui le précède

voila un exemple du tableau ( le / sépare les colonnes ) et certaines colonnes peuvent etre vide...


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
0/ELEMENT/head///1/-1
1/ATTRIBUT/isserviceon///1/-1
2/ATTRIBUT/isdeported/TRUE//1/-1
3/ATTRIBUT/isdirect///1/-1
4/ATTRIBUT/originalServer///1/-1
5/ATTRIBUT/generalHelp/TRUE//1/-1
6/ATTRIBUT/lang/fr//1/-1
7/ATTRIBUT/isrestricted///1/-1
8/ELEMENT/title/un titre/0/2/-1
9/ELEMENT/description//0/2/-1
10/ELEMENT/text/#PCDATA/9/3/-1
11/ATTRIBUT/lang///1/-1
12/ELEMENT/authors/D. ROBERT/0/2/-1
13/ELEMENT/reference/aucune/0/2/-1
14/ELEMENT/category/test/0/2/-1
15/ELEMENT/doclink//0/2/-1
16/ELEMENT/url//0/2/-1
17/ELEMENT/description//0/2/9
18/ELEMENT/text/ceci est une description/17/3/-1
19/ATTRIBUT/lang/fr//1/-1
20/ELEMENT/description//0/2/9
21/ELEMENT/text/this is a description/20/3/-1
22/ATTRIBUT/lang/en//1/-1


voila dans mon exemple, les lignes 17,20 (leur enfant : 18,21 et l'attribut de ces enfants 19,22) doivent migré à la place des ligne 9,10,11 pour obtenir la structure suivante


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
0/ELEMENT/head///1/-1
1/ATTRIBUT/isserviceon///1/-1
2/ATTRIBUT/isdeported/TRUE//1/-1
3/ATTRIBUT/isdirect///1/-1
4/ATTRIBUT/originalServer///1/-1
5/ATTRIBUT/generalHelp/TRUE//1/-1
6/ATTRIBUT/lang/fr//1/-1
7/ATTRIBUT/isrestricted///1/-1
8/ELEMENT/title/un titre/0/2/-1
                                                             => on a remplacé les lignes 9à11 par ce bloc
9/ELEMENT/description//0/1/-1                     =>  ancienne ligne 17
10/ELEMENT/text/ceci est une description/17/3/-1  =>  ancienne ligne 18
11/ATTRIBUT/lang/fr//1/-1                         =>  ancienne ligne 19
12/ELEMENT/description//0/1/-1                    =>  ancienne ligne 20
13/ELEMENT/text/this is a description/20/3/-1     =>  ancienne ligne 21
14/ATTRIBUT/lang/en//1/-1                         =>  ancienne ligne 22
 
15/ELEMENT/authors/D. ROBERT/0/2/-1
16/ELEMENT/reference/aucune/0/2/-1
17/ELEMENT/category/test/0/2/-1
18/ELEMENT/doclink//0/2/-1
19/ELEMENT/url//0/2/-1
voila je cherche une idée pour programmer ça ...

merci