Aie, alors, rien n'est moins sur, il peut très bien y avoir un nombre impaire de balises.
Aie, alors, rien n'est moins sur, il peut très bien y avoir un nombre impaire de balises.
Bon, je n'arrive pas à avoir le résultat escompté.
J'ai modifié le XML pour avoir plus de sections et de zone de saisie.
Code xml : 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
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254 <?xml version="1.0" encoding="utf-8"?> <TERRAINS code_terrain="LFPN" nom_terrain="Toussus-Le-Noble"> <SECTIONS> <SECTION nom_section="Avions / Basés / VFR / Voyage" cell_section="LIG_SECTION_1"> <ZONE_SAISIE> <LIB>Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L1C1</CELLULE> <LIG>1</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L2C1</CELLULE> <LIG>2</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L3C1</CELLULE> <LIG>3</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L4C1</CELLULE> <LIG>4</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> <SECTION nom_section="Avions / Basés / VFR / Aérodrome" cell_section="LIG_SECTION_2"> <ZONE_SAISIE> <LIB>LOC. - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L6C1</CELLULE> <LIG>6</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>LOC. - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L7C1</CELLULE> <LIG>7</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L8C1</CELLULE> <LIG>8</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L9C1</CELLULE> <LIG>9</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L10C1</CELLULE> <LIG>10</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L11C1</CELLULE> <LIG>11</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> <SECTION nom_section="Avions / Basés / IFR / Voyage" cell_section="LIG_SECTION_3"> <ZONE_SAISIE> <LIB>Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L1C1</CELLULE> <LIG>1</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L2C1</CELLULE> <LIG>2</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L3C1</CELLULE> <LIG>3</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L4C1</CELLULE> <LIG>4</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> <SECTION nom_section="Avions / Basés / IFR / Aérodrome" cell_section="LIG_SECTION_3"> <ZONE_SAISIE> <LIB>LOC. - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L6C1</CELLULE> <LIG>6</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>LOC. - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L7C1</CELLULE> <LIG>7</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L8C1</CELLULE> <LIG>8</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L9C1</CELLULE> <LIG>9</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L10C1</CELLULE> <LIG>10</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L11C1</CELLULE> <LIG>11</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> </SECTIONS> </TERRAINS>
Voici le code :
Voici ce que ça donne à l'écran :
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
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
61
62
63
64
65 function CreationPage(P_Terrain) { WFichier = G_RepXML + G_TERRAIN + ".xml"; $(document).ready( function() { $.ajax( { type: "GET", url: WFichier, dataType: "xml", success: function(xml) { $(xml).find('TERRAINS').each( function() { var WCode_Terrain = $(this).attr('code_terrain'); var WNom_Terrain = $(this).attr('nom_terrain'); // Application de la classe pour le nom de l'aérodrome. var ObjCell = document.getElementById("Cell_Titre"); ObjCell.className = "SousTitre"; Cell_Titre.innerHTML = WNom_Terrain; } ) $(xml).find('SECTIONS').find('SECTION').each( function() { var WNom_Section = $(this).attr('nom_section'); var WCell_Section = $(this).attr('cell_section'); // Ajout d'un ligne à la table Tab_Stage $('#Tab_Stage').append($('<tr><td colspan="4" class="Section">'+WNom_Section+"</td></tr>")); } ) $(xml).find('ZONE_SAISIE:even').each( function() { var WLib1 = $(this).find('LIB').text(); var WLib2 = $(this).next('ZONE_SAISIE').find('LIB').text(); var WElement1 = $(this).find('ELEMENT').text(); var WElement2 = $(this).next('ZONE_SAISIE').find('ELEMENT').text(); var WType1 = $(this).find('TYPE').text(); var WType3 = $(this).next('ZONE_SAISIE').find('TYPE').text(); var WSize1 = $(this).find('SIZE').text(); var WSize2 = $(this).next('ZONE_SAISIE').find('SIZE').text(); var WMax_Car1 = $(this).find('MAX_CAR').text(); var WMax_Car2 = $(this).next('ZONE_SAISIE').find('MAX_CAR').text(); var WInit1 = $(this).find('INIT').text(); var WInit2 = $(this).next('ZONE_SAISIE').find('INIT').text(); var WClasse1 = $(this).find('CLASSE').text(); var WClasse2 = $(this).next('ZONE_SAISIE').find('CLASSE').text(); WLigne = "<tr><td>"; WLigne = WLigne + WLib1 + "</td/><td><input value='"+WElement1+"' />"; WLigne = WLigne + "</td>"; WLigne = WLigne + "<td>"; WLigne = WLigne + WLib2 + "</td/><td><input value='"+WElement2+"' />"; WLigne = WLigne + "</td></tr>"; $('#Tab_Stage').append( $(WLigne)); } ) } } ); } ); }
Je ne comprends pas pourquoi je n'ai pas le même résultat que toi ?
mes boucles sont imbriquées ...
Et c'est là, que je dis : "oups"
Génial, ça fonctionne nickel. Merci; merci et merci.
Au lieu d'avoir la table créée au départ, est-ce qu'il serait possible d'ajouter la création d'une table différente pour chaque section ?
(En fait, ça me permettrai d'appliquer un style CSS tout fait)
la creation de la table peut être faite dynamiquement sur le même principe
tu peux aussi coller des class ou des id au moment de la création et gerer les styles en css... (comme j'ai fait pour le bold)
Aie, je viens de me rendre compte qu'il y avait un gros problème :
Toutes les ZONE_SAISIE apparaissent dans chaque section.
Normalement, dans cette section, il aurait du y avoir que 4 ZONE_SASIE (sur 2 lignes)
Re oups... J'ai mal imbriqué mes boucles.
Bon, par contre, je n'arrive pas à créer une nouvelle table pour chaque section ?
peux tu préciser le terme "section" ?
balise SECTIONS ? paires de balise SECTION ?
Bon, galère, en fait je confirme bien que ça fonctionne pas tout à fait comme il le faudrait
Voila un résumé "stylisé" de ce que ça doit donner :
SECTION : Avions / Basés / VFR / Voyage
ZONE_SAISIE : Départs - Jour | ZONE_SAISIE : Départs - Nuit
ZONE_SAISIE : Arrivées - Jour | ZONE_SAISIE : Arrivées - Nuit
SECTION : Avions / Basés / VFR / Aérodrome
ZONE_SAISIE : LOC - Jour | ZONE_SAISIE : LOC - Nuit
ZONE_SAISIE : TDP Départs - Jour | ZONE_SAISIE : TDP Départs - Nuit
ZONE_SAISIE : T and GO - Jour | ZONE_SAISIE : T and GO - Nuit
SECTION : Avions / Basés / IFR/ Voyage
ZONE_SAISIE : Départs - Jour | ZONE_SAISIE : Départs - Nuit
ZONE_SAISIE : Arrivées - Jour | ZONE_SAISIE : Arrivées - Nuit
SECTION : Avions / Basés / IFR / Aérodrome
ZONE_SAISIE : LOC - Jour | ZONE_SAISIE : LOC - Nuit
ZONE_SAISIE : TDP Départs - Jour | ZONE_SAISIE : TDP Départs - Nuit
ZONE_SAISIE : T and GO - Jour | ZONE_SAISIE : T and GO - Nuit
Etc...
Etc...
Etc...
Le XML :
Code xml : 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
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254 <?xml version="1.0" encoding="utf-8"?> <TERRAINS code_terrain="LFPN" nom_terrain="Toussus-Le-Noble"> <SECTIONS> <SECTION nom_section="Avions / Basés / VFR / Voyage" cell_section="LIG_SECTION_1"> <ZONE_SAISIE> <LIB>Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L1C1</CELLULE> <LIG>1</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L2C1</CELLULE> <LIG>2</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L3C1</CELLULE> <LIG>3</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L4C1</CELLULE> <LIG>4</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> <SECTION nom_section="Avions / Basés / VFR / Aérodrome" cell_section="LIG_SECTION_2"> <ZONE_SAISIE> <LIB>LOC. - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L6C1</CELLULE> <LIG>6</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>LOC. - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L7C1</CELLULE> <LIG>7</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L8C1</CELLULE> <LIG>8</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L9C1</CELLULE> <LIG>9</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L10C1</CELLULE> <LIG>10</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L11C1</CELLULE> <LIG>11</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> <SECTION nom_section="Avions / Basés / IFR / Voyage" cell_section="LIG_SECTION_3"> <ZONE_SAISIE> <LIB>Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L1C1</CELLULE> <LIG>1</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L2C1</CELLULE> <LIG>2</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L3C1</CELLULE> <LIG>3</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>Arrivées - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L4C1</CELLULE> <LIG>4</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> <SECTION nom_section="Avions / Basés / IFR / Aérodrome" cell_section="LIG_SECTION_4"> <ZONE_SAISIE> <LIB>LOC. - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L6C1</CELLULE> <LIG>6</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>LOC. - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L7C1</CELLULE> <LIG>7</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L8C1</CELLULE> <LIG>8</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - Départs - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L9C1</CELLULE> <LIG>9</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Jour</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L10C1</CELLULE> <LIG>10</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> <ZONE_SAISIE> <LIB>TDP - T and GO - Nuit</LIB> <ELEMENT>INPUT</ELEMENT> <TYPE>NUM</TYPE> <SIZE>5</SIZE> <MAX_CAR>3</MAX_CAR> <CELLULE>L11C1</CELLULE> <LIG>11</LIG> <COL>1</COL> <VAL_INIT>0</VAL_INIT> <CLASSE></CLASSE> </ZONE_SAISIE> </SECTION> </SECTIONS> </TERRAINS>
Mon code :
J'ai volontairement laissé le terrain hors des boucles, car il y aura un XML par terrain.
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
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
61
62
63 function CreationPage(P_Terrain) { WFichier = G_RepXML + G_TERRAIN + ".xml"; $(document).ready( function() { $.ajax( { type: "GET", url: WFichier, dataType: "xml", success: function(xml) { $(xml).find('TERRAINS').each( function() { var WCode_Terrain = $(this).attr('code_terrain'); var WNom_Terrain = $(this).attr('nom_terrain'); // Application de la classe pour le nom de l'aérodrome. var ObjCell = document.getElementById("Cell_Titre"); ObjCell.className = "SousTitre"; Cell_Titre.innerHTML = WNom_Terrain; }) $(xml).find('SECTIONS').find('SECTION').each( function() { var WNom_Section = $(this).attr('nom_section'); var WCell_Section = $(this).attr('cell_section'); //Création de la table // Ajout d'un ligne à la table Tab_Stage $('#Tab_Stage').append($('<tr><td colspan="4">'+WNom_Section+"</td></tr>")); $(xml).find('ZONE_SAISIE:even').each( function() { var WLib1 = $(this).find('LIB').text(); var WLib2 = $(this).next('ZONE_SAISIE').find('LIB').text(); var WElement1 = $(this).find('ELEMENT').text(); var WElement2 = $(this).next('ZONE_SAISIE').find('ELEMENT').text(); var WType1 = $(this).find('TYPE').text(); var WType3 = $(this).next('ZONE_SAISIE').find('TYPE').text(); var WSize1 = $(this).find('SIZE').text(); var WSize2 = $(this).next('ZONE_SAISIE').find('SIZE').text(); var WMax_Car1 = $(this).find('MAX_CAR').text(); var WMax_Car2 = $(this).next('ZONE_SAISIE').find('MAX_CAR').text(); var WInit1 = $(this).find('INIT').text(); var WInit2 = $(this).next('ZONE_SAISIE').find('INIT').text(); var WClasse1 = $(this).find('CLASSE').text(); var WClasse2 = $(this).next('ZONE_SAISIE').find('CLASSE').text(); WLigne = "<tr><td>"; WLigne = WLigne + WLib1 + "</td/><td><input value='"+WElement1+"' />"; WLigne = WLigne + "</td>"; WLigne = WLigne + "<td>"; WLigne = WLigne + WLib2 + "</td/><td><input value='"+WElement2+"' />"; WLigne = WLigne + "</td></tr>"; $('#Tab_Stage').append( $(WLigne)); }) }) } } ); } ); }
J'ai juste modifie le XML, le script de creation je n'y ai pas touché
http://jsfiddle.net/8vgw16k3/14/
ça me parait ressemblant ..?
Bah oui, c'est le résultat que je souhaite avoir, mais ce n'est pas ce que j'ai en réalité.
J'ai du me trompationné quelque part, mais je ne vois pas où.
Voici le résultat que j'obtiens (ne tiens pas compte de l'ergonomie, je travaille dessus)
On remarque qu'il y a à chaque fois, tous les INPUT (ZONE_SAISIE) pour chaque SECTION.
Qu'est-ce que j'ai loupé ?
Et qu'est-ce que tu as modifié dans le XML ?
je n'ai RIEN modifié dans le XML j'ai pris ton, dernier XML tel quel
il me semble juste que tu ne fais pas les imbrications de boucles correctement...
attention aussi à la porté du find ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part $(this).find('SECTIONS').find('SECTION').each(
Aie, je veux bien le croire, mais je ne trouve pas
Au secours !
J'ai beau regarder et re-regarder, mais je ne vois pas où est l'erreur ! ? !
moi non plus...
vu que je ne vois pas me code ...
tu peux pas faire un fiddle ?
Il faudrait que je me créé un compte Fiddle, mais en attendant :
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
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 function CreationPage(P_Terrain) { WFichier = G_RepXML + G_TERRAIN + ".xml"; $(document).ready( function(){ $.ajax( { type: "GET", url: WFichier, dataType: "xml", success: function(xml) { $(xml).find('TERRAINS').each( function() { var WCode_Terrain = $(this).attr('code_terrain'); var WNom_Terrain = $(this).attr('nom_terrain'); // Application de la classe pour le nom de l'aérodrome. var ObjCell = document.getElementById("Cell_Titre"); ObjCell.className = "SousTitre"; Cell_Titre.innerHTML = WNom_Terrain; }) var WIndex = 1; $(xml).find('SECTIONS').find('SECTION').each( function() { var WNom_Section = $(this).attr('nom_section'); var WCell_Section = $(this).attr('cell_section'); //Création de la DIV dans la div DIVTAB_00 WDivTAB_00 = document.getElementById("DivTAB_00"); WNomDIV = "DivTAB" + WIndex; WDiv = document.createElement("div"); WDiv.setAttribute("id", WNomDIV); WDiv.setAttribute("class", "CSSTableGenerator"); WDivTAB_00.appendChild(WDiv); WDivID = document.getElementById(WNomDIV); //Création de la table dans la DIV WNomTAB = "Tab_Stage" + WIndex; WTable = document.createElement("table"); WTable.setAttribute("id", WNomTAB); WDivID.appendChild(WTable); // Ajout d'un ligne à la table $('#'+WNomTAB).append($('<tr><td colspan="4">'+WNom_Section+"</td></tr>")); $(xml).find('ZONE_SAISIE:even').each( function() { var WLib1 = $(this).find('LIB').text(); var WLib2 = $(this).next('ZONE_SAISIE').find('LIB').text(); var WElement1 = $(this).find('ELEMENT').text(); var WElement2 = $(this).next('ZONE_SAISIE').find('ELEMENT').text(); var WType1 = $(this).find('TYPE').text(); var WType3 = $(this).next('ZONE_SAISIE').find('TYPE').text(); var WSize1 = $(this).find('SIZE').text(); var WSize2 = $(this).next('ZONE_SAISIE').find('SIZE').text(); var WMax_Car1 = $(this).find('MAX_CAR').text(); var WMax_Car2 = $(this).next('ZONE_SAISIE').find('MAX_CAR').text(); var WInit1 = $(this).find('INIT').text(); var WInit2 = $(this).next('ZONE_SAISIE').find('INIT').text(); var WClasse1 = $(this).find('CLASSE').text(); var WClasse2 = $(this).next('ZONE_SAISIE').find('CLASSE').text(); WLigne = "<tr><td>"; WLigne = WLigne + WLib1 + "</td/><td><input value='"+WElement1+"' />"; WLigne = WLigne + "</td>"; WLigne = WLigne + "<td>"; WLigne = WLigne + WLib2 + "</td/><td><input value='"+WElement2+"' />"; WLigne = WLigne + "</td></tr>"; $('#'+WNomTAB).append($(WLigne)); }) // Ajout d'un saut de ligne avant de créer la prochaine DIV. //WLigne = "<br/> <br/>"; //$('#'+WDivTAB_00).append($(WLigne)); WIndex = WIndex + 1; }) } }); }); }
Ton erreur est simple ...
Regarde bien à partir de quel element tu fais le find !
tu repars à chaque fois du xml complet
alors que quand tu es dans une boucle each tu dois fair ele find de façon relavie à l'elemetn sur lequel tu boucles .
Code : Sélectionner tout - Visualiser dans une fenêtre à part $(xml).find ....
Par exemple:
devrait être
Code : Sélectionner tout - Visualiser dans une fenêtre à part $(xml).find('SECTIONS').find('SECTION').each(
afin de limiter le find
Code : Sélectionner tout - Visualiser dans une fenêtre à part $(this).find('SECTIONS').find('SECTION').each(
Bah oui, j'y avais bien pensé, mais dans ce cas là, ça ne fonctionne plus, j'ai plus rien :
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
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
61
62
63
64
65
66
67
68
69
70
71
72 function CreationPage(P_Terrain) { WFichier = G_RepXML + G_TERRAIN + ".xml"; $(document).ready( function(){ $.ajax( { type: "GET", url: WFichier, dataType: "xml", success: function(xml) { $(xml).find('TERRAINS').each( function() { var WCode_Terrain = $(this).attr('code_terrain'); var WNom_Terrain = $(this).attr('nom_terrain'); // Application de la classe pour le nom de l'aérodrome. var ObjCell = document.getElementById("Cell_Titre"); ObjCell.className = "SousTitre"; Cell_Titre.innerHTML = WNom_Terrain; }) var WIndex = 1; $(this).find('SECTIONS').find('SECTION').each( function() { var WNom_Section = $(this).attr('nom_section'); var WCell_Section = $(this).attr('cell_section'); //Création de la DIV dans la div DIVTAB_00 WDivTAB_00 = document.getElementById("DivTAB_00"); WNomDIV = "DivTAB" + WIndex; WDiv = document.createElement("div"); WDiv.setAttribute("id", WNomDIV); WDiv.setAttribute("class", "CSSTableGenerator"); WDivTAB_00.appendChild(WDiv); WDivID = document.getElementById(WNomDIV); //Création de la table dans la DIV WNomTAB = "Tab_Stage" + WIndex; WTable = document.createElement("table"); WTable.setAttribute("id", WNomTAB); WDivID.appendChild(WTable); // Ajout d'un ligne à la table $('#'+WNomTAB).append($('<tr><td colspan="4">'+WNom_Section+"</td></tr>")); $(this).find('ZONE_SAISIE:even').each( function() { var WLib1 = $(this).find('LIB').text(); var WLib2 = $(this).next('ZONE_SAISIE').find('LIB').text(); var WElement1 = $(this).find('ELEMENT').text(); var WElement2 = $(this).next('ZONE_SAISIE').find('ELEMENT').text(); var WType1 = $(this).find('TYPE').text(); var WType3 = $(this).next('ZONE_SAISIE').find('TYPE').text(); var WSize1 = $(this).find('SIZE').text(); var WSize2 = $(this).next('ZONE_SAISIE').find('SIZE').text(); var WMax_Car1 = $(this).find('MAX_CAR').text(); var WMax_Car2 = $(this).next('ZONE_SAISIE').find('MAX_CAR').text(); var WInit1 = $(this).find('INIT').text(); var WInit2 = $(this).next('ZONE_SAISIE').find('INIT').text(); var WClasse1 = $(this).find('CLASSE').text(); var WClasse2 = $(this).next('ZONE_SAISIE').find('CLASSE').text(); WLigne = "<tr><td>"; WLigne = WLigne + WLib1 + "</td/><td><input value='"+WElement1+"' />"; WLigne = WLigne + "</td>"; WLigne = WLigne + "<td>"; WLigne = WLigne + WLib2 + "</td/><td><input value='"+WElement2+"' />"; WLigne = WLigne + "</td></tr>"; $('#'+WNomTAB).append($(WLigne)); }) // Ajout d'un saut de ligne avant de créer la prochaine DIV. //WLigne = "<br/> <br/>"; //$('#'+WDivTAB_00).append($(WLigne)); WIndex = WIndex + 1; }) } // FIN SUCCES }); }); }
AYE ! C'est bon...
Je mettais 2 "This" alors qu'il ne faut en mettre un que sur la dernière boucle.
Pfiou...
Petite question subsidiaire :
Pourquoi est-ce que je ne peux pas insérer de saut de ligne entre chaque DIV créées ?
Ou alors la syntaxe n'est pas bonne ? (Cf le code en rouge)
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
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74 function CreationPage(P_Terrain) { WFichier = G_RepXML + G_TERRAIN + ".xml"; $(document).ready( function(){ $.ajax( { type: "GET", url: WFichier, dataType: "xml", success: function(xml) { $(xml).find('TERRAINS').each( function() { var WCode_Terrain = $(this).attr('code_terrain'); var WNom_Terrain = $(this).attr('nom_terrain'); // Application de la classe pour le nom de l'aérodrome. var ObjCell = document.getElementById("Cell_Titre"); ObjCell.className = "SousTitre"; Cell_Titre.innerHTML = WNom_Terrain; }) var WIndex = 1; $(xml).find('SECTIONS').find('SECTION').each( function() { var WNom_Section = $(this).attr('nom_section'); var WCell_Section = $(this).attr('cell_section'); //Création de la DIV dans la div DIVTAB_00 WDivTAB_00 = document.getElementById("DivTAB_00"); WNomDIV = "DivTAB" + WIndex; WDiv = document.createElement("div"); WDiv.setAttribute("id", WNomDIV); WDiv.setAttribute("class", "CSSTableGenerator"); WDivTAB_00.appendChild(WDiv); WDivID = document.getElementById(WNomDIV); //Création de la table dans la DIV WNomTAB = "Tab_Stage" + WIndex; WTable = document.createElement("table"); WTable.setAttribute("id", WNomTAB); WDivID.appendChild(WTable); // Ajout d'un ligne à la table $('#'+WNomTAB).append($('<tr><td colspan="4">'+WNom_Section+"</td></tr>")); $(this).find('ZONE_SAISIE:even').each( function() { var WLib1 = $(this).find('LIB').text(); var WLib2 = $(this).next('ZONE_SAISIE').find('LIB').text(); var WElement1 = $(this).find('ELEMENT').text(); var WElement2 = $(this).next('ZONE_SAISIE').find('ELEMENT').text(); var WType1 = $(this).find('TYPE').text(); var WType3 = $(this).next('ZONE_SAISIE').find('TYPE').text(); var WSize1 = $(this).find('SIZE').text(); var WSize2 = $(this).next('ZONE_SAISIE').find('SIZE').text(); var WMax_Car1 = $(this).find('MAX_CAR').text(); var WMax_Car2 = $(this).next('ZONE_SAISIE').find('MAX_CAR').text(); var WInit1 = $(this).find('INIT').text(); var WInit2 = $(this).next('ZONE_SAISIE').find('INIT').text(); var WClasse1 = $(this).find('CLASSE').text(); var WClasse2 = $(this).next('ZONE_SAISIE').find('CLASSE').text(); WLigne = "<tr><td>"; WLigne = WLigne + WLib1 + "</td/><td><input value='"+WElement1+"' />"; WLigne = WLigne + "</td>"; WLigne = WLigne + "<td>"; WLigne = WLigne + WLib2 + "</td/><td><input value='"+WElement2+"' />"; WLigne = WLigne + "</td></tr>"; $('#'+WNomTAB).append($(WLigne)); }) // Ajout d'un saut de ligne avant de créer la prochaine DIV. WLigne = "<br/> <br/>"; $('#'+WDivTAB_00).append($(WLigne)); WIndex = WIndex + 1; }) } // FIN SUCCES }); }); }
tu pourrais inserer un br ... mais la bonne pratique serait plutot de mettre un margin-bottom sur les divs ...
Génial, tout semble être nickel.
Un grand, très grand merci à toi pour ton aide et ta patience.
Attention !!
Je ne serais pas tenu pour responsable en cas de crash d'avion !!!
Bonne continuation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager