bonjour tout le monde
j'essaye actuellement de développer un script de statistiques de serveurs vocaux. Ce script marche comme ceci :
il y a un script php local sur chaque serveur et un script distant sur un autre serveur.
Chaque script local s'adresse à une BD et renvoie une réponse XML.
Enfin le script distant fais un echo en xml de tous les scripts locaux.
de ce fait je peux afficher les résultats avec un fichier XSLT.
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 echo '<listServers>'; $bd=new bd(); $bd->connectBase('localhost','root','','script'); $req='SELECT ipServer, pathScript, serverName FROM server'; $res=$bd->executeRequete($req); $nbServer=mysql_num_rows($bd->resultatRequete); if($nbServer>0) { while($m=$bd->getLigneResultatSuivante()) { $adresse='http://'; $adresse.=$m['ipServer']; $adresse.=$m['pathScript'].'?vers='.$ver.'&nbDays='.$nbDays.'&nbHours='.$nbHours; $page=@file_get_contents($adresse); echo '<server nom="'.$m['serverName'].'">'; echo $page; echo '</server>'; } } echo '</listServers>';
Bref, le fait est que je voudrais afficher tout ca sans php et sans XSLT.
J'ai donc pensé au javascript. Et javascript + xml ca a donné ajax !
Après de nombreuses lectures depuis ce matin, j'ai essayé de nombreuses fois de faire marcher ce script :
malheureusement sans réussite ...
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 <?xml version="1.0" encoding="iso-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Liste des DVD</title> <script src="script.js" type="text/javascript"></script> </head> <body> <script type="text/javascript"> <!-- var xhr = getXMLHttpRequest(); xhr.onreadystatechange = handleHttpResponse; var url = "remote_script.php?version=light&nbDays=0&nbHours=2"; xhr.open("GET", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(null); function handleHttpResponse() { if(xhr.readyState == 4 && xhr.status == 200) { alert(xhr.responseXML) var items = response.getElementsByTagName("server"); var html = ''; count = items.length; for(i = 0; i < count; i++) { html += '<h1>' + items[i].getElementsByTagName("nbCurrentCalls")[0].firstChild.nodeValue + '</h1>'; html += items[i].getElementsByTagName("nbLastHourCall")[0].firstChild.nodeValue; html += items[i].getElementsByTagName("dureeLastHourCall")[0].firstChild.nodeValue; } document.getElementById('content').innerHTML += html; } } --> </script> <div id="content"></div> </body> </html>
j'ai essayé de faire un alert(xhr.responseXML)
il me renvoie null
si je fais un alert(xhr.responseXML) il me renvoie bien tout le xml dans l'alert...
merci d'avance
ps : mon fichier XML est de la forme :
listServers
- server nom=" " (autant que de serveurs)
- current (autant que d'appels en cours)
arboName
callStart
duration
- stats
nbCurrentCalls
nbLastHourCall
dureeLastHourCall
dureeLastDayCall
nbLastDayCall
[edit] : j'ai rajouté le text/xml dans ma page et depuis j'ai réussi à
afficher : undefinedundefinedundefined dans ma page résultat ...
je pense que maintenant le résultat xml parvient à la page mais je n'arrive pas à l'afficher ...
quelqu un pourrait il m'aider à faire l'affichage du fichier xml qui est donné en dessous svp svp
Partager