Bonjour,
Alors en fait je bloque sur un truc qui me parait tout bete mais je n'y arrive pas....
Je vous explique mon probleme depuis le début:
Alors en fait j'ai une page HTML classique,en fait dans cette page j'aimerai afficher une liste de langue.
Mais la liste de langue doit etre générée dynamiquement,en effet cette liste de langue peut changer suivant les langues présentes dans un fichier XML.
Je vous expique donc ce que j'ai fait.
J'ai d'abord un fichier XML (SOURCE-XML.xml) de type:
que je parse avec un fichier PHP (pour récupérer les langues) de ce type:
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 <?xml version="1.0" encoding="UTF-8"?> <rows> <row id="0"> <cell xml:lang="en">English sentence 1</cell> <cell xml:lang="fr">Phrase Francaise 1</cell> <cell xml:lang="sp">Phrase Espagnol 1</cell> <cell xml:lang="jp">Phrase Japonaise 1</cell> <cell xml:lang="it">Phrase Italienne 1</cell> <cell xml:lang="ar">Phrase Arabe 1</cell> </row> <row id="1"> <cell xml:lang="en">English sentence 2</cell> <cell xml:lang="fr">Phrase Francaise 2</cell> <cell xml:lang="sp">Phrase Espagnol 2</cell> <cell xml:lang="jp">Phrase Japonaise 2</cell> <cell xml:lang="it">Phrase Italienne 2</cell> <cell xml:lang="ar">Phrase Arabe 2</cell> </row> </rows>
donc la je recupere bien une liste avec les différentes langues de mon fichier,
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 <?php $nom_fichier="SOURCE-XML.xml"; //Copie de la totalité du fichier XML dans une string $tout=file_get_contents("$nom_fichier"); //Récupération des données $token=strtok($tout, '<'); $token=strtok('>'); $a=0; while($token!="/rows"){ $token=strtok('<'); $token=strtok('>'); if($token=="cell xml:lang=\"en\""){ $table[$a]="Anglais"; $a++; } else if($token=="cell xml:lang=\"fr\""){ $table[$a]="Francais"; $a++; } else if($token=="cell xml:lang=\"jp\""){ $table[$a]="Japonais"; $a++; } else if($token=="cell xml:lang=\"ru\""){ $table[$a]="Italien"; $a++; } else if($token=="cell xml:lang=\"ch\""){ $table[$a]="Espagnol"; $a++; } else if($token=="cell xml:lang=\"sp\""){ $table[$a]="Arabe"; $a++; } } //Ne marche que si le fichier xml contient au moins une langue $nbrOcc=0; $y=0; $i=0; $z=0; $list[$i]=$table[0]; $i++; for($z=1;$z<$a;$z++){ $lang=$table[$z]; for($y=0;$y<$i;$y++){ if($list[$y]==$lang)$nbrOcc++; } if($nbrOcc==0){ $list[$i]=$lang; $i++; } $nbrOcc=0; } echo "<select name='langage'>"; for($z=0;$z<$i;$z++){ echo "<option value='$list[$z]'>$list[$z]</option>"; } echo "</select>"; ?>
maintenant ce que je voudrai faire c'est transmettre cette liste à ma page HTML pour qu'elle l'affiche.
j'arrive à récupérer le code de la liste dans une variable javascript grace à AJAX avec cette fonction:
Et voilà,j'aimerai maintenant afficher ma liste dans ma page html,il faut pour celà que j'invoque la fonction rec_lang() et une fois recu la liste que je l'affiche dans ma page mais je n'ai aucune idée de comment faire.
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 function rec_lang() { var xhr_object = null; if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("GET", "PHP/rec_lang.php", false); xhr_object.send(null); if(xhr_object.readyState == 4) { alert(xhr_object.responseText); listlang = eval(xhr_object.responseText); alert(listlang); alert("Liste de langue bien générée !"); } }
En effet d'habitude je fais ma liste avec un simple:
Mais là j'aimerai que la liste soit celle générée par le fichier PHP car le contenu du fichier XML peut changer pour n'avoir plus que 3 langues par exemple...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <FORM> Langue source <select name="langsName" id="langs" onChange="var ls = document.getElementById('srcLang'); ls.value = document.getElementById('langs').value;"> <option value="default" label=""></option> <option value="ar" label="">Arabe</option> <option value="en" label="">Anglais</option> <option value="sp" label="">Espagnol</option> <option value="fr" label="">Francais</option> <option value="it" label="">Italien</option> <option value="jp" label="">Japonais</option> </select> <FORM>
Voilà,j'espere que j'ai été assez clair.
Et donc si quelqu'un connaissais une solution celà m'aiderait grandement...
Merci
Partager