Bonjour,
j'utilise une page web avec un javascript pour afficher un fichier XML via XSL
ce JS est appel� au chargement de la page avec la directive
<body onload="....">
ci dessous mes javascripts:
et le code HTML
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 function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp=new XMLHttpRequest(); } else { xhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",dname,false); xhttp.send(""); return xhttp.responseXML; } function displayResult(sigle,valeur) { document.getElementById("content").innerHTML=''; xmlfile="test.xml"; xslfile="srfil.xsl"; xml=loadXMLDoc(xmlfile); xsl=loadXMLDoc(xslfile); // code for Mozilla, Firefox, Opera, etc. if (document.implementation && document.implementation.createDocument) { xsltProcessor=new XSLTProcessor(); xsltProcessor.importStylesheet(xsl); if ( sigle != "" && valeur != "") { xsltProcessor.setParameter(null, "filtresigle", sigle); xsltProcessor.setParameter(null, "filtrevalue", valeur); xsltProcessor.setParameter(null, "gofiltre", 1); } else { xsltProcessor.setParameter(null, "gofiltre", 0); } resultDocument = xsltProcessor.transformToFragment(xml,document); document.getElementById("content").appendChild(resultDocument); } } function valider() { // si la valeur des champ est non vide if(document.filtre.sigle.value != "" && document.filtre.valeur.value != "") { // les données sont ok, on peut envoyer le formulaire displayResult(document.filtre.sigle.value,document.filtre.valeur.value); } else { // sinon on affiche un message alert("Saisissez les données"); // et on indique de ne pas envoyer le formulaire return false; } }
Au chargement initial de la page, le fichier XML est correctement affich� via l'appel au script "DisplayResult".
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 <body onload="displayResult()"> <div id="header"> <h1>Décodage SRFIL</h1> <h2>Test.log</h2> </div> <div id="filtre"> <h3>Filtre</h3> <form name="filtre" action="" onsubmit="return valider()" method="get"> <p> <label for="sigle">Sigle :</label> <input type="text" name="sigle" value="" /> <label for="valeur">Valeur :</label> <input type="text" name="valeur" value="" /> <input type="submit" value="Ok" /> </p> </form> </div> <div id="content" /> </body>
On n'y passe pas de param�tres (ceux-ci servent � ajouter des filtres pour l'affichages des donn�es XML)
Le formulaire sert pour l'utilisateur pour qu'il puisse filtrer l'affichage des donn�es XML.
les valeurs sont correctement r�cup�r�e par le script "valider".
D�s validation du formulaire, le filtrage se passe bien (j'ai un rafraichissement de la div "content" avec les donn�es filtr�es.
par contre quelques instant plus tard, j'ai un refresh complet de la page, sans les donn�es de filtrage...
j'ai essay� de retirer la directive "onload" dans la balise <body>, mais cela ne change rien...
Partager