Bonjour à tous !
Je suis débutant en Javacript, et je m'arrache les cheveux sur un problème que je ne sais pas résoudre...
J'essaie de récupérer des informations depuis un fichier XML distant, et de les placer dans une liste déroulante ; ce que je suis arrivé à mettre en place avec XmlHttpRequest en récupérant des morceaux de code à gauche à droite. Pour faire simple et pour tester déjà, j'ai fait sur ma page HTML un tableau de deux cellules, avec dans la cellule de gauche un simple texte, et dans la cellule de droite mon résultat de fonction Javascript, c'est à dire ma liste déroulante.
Seulement, j'ai un problème "d'affichage". Lorsque je charge ma page, je tombe tout d'abord sur mon tableau, mais sans la liste déroulante, ce qui me semble normal puisque la fonction n'a pas encore renvoyé le résultat. Puis, au bout d'une demi-seconde, ma page se recharge... et je n'ai plus que ma liste déroulante.
Vous en conviendrez donc que si mon code Javascript efface le reste de la page, cela va poser un problème !
Voici le code de ma page HTML :
Voilà donc ce code qui me fait désespérer...
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 <html> <head> <title>Test XMLHttpRequest</title> <script language="javascript"> function submitForm(){ var xhr = null; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); // Firefox, Safari, ... } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer } else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if(xhr.status == 200) { var doc = xhr.responseXML; document.write("<select>"); for (i=1; i<=50; i++){ var element = doc.getElementsByTagName('TRUCS').item(i); document.write("<option value='"+element.firstChild.data+"'>"+element.firstChild.data+"</option>"); } document.write("</select>"); } else { } } } xhr.open('GET', 'http://www.site-distant.com/fichier.xml', true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(); } </script> </head> <body> <table width="300" border="1"> <tr> <td>Liste de TRUCS :</td> <td><script>window.onLoad(submitForm());</script></td> </tr> </table> </body> </html>
En espérant que tout ceci vous inspire plus que moi, je vous remercie beaucoup de votre attention et de vos éventuelles réponses !
Cordialement,
Yoanne
Partager