Merci pour le conseil.
J'ai essayé et c'est pareil.
Il me semble que ce qui est retourné n'est pas du XML. Voici les codes actuels :
index.php :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <html>
<head>
<title>a useful dashboard for LG3 XML files - @ <?php echo date("H:i:s"); ?></title>
<basefont size="1" color="" face="Arial,Courrier" />
<script type="text/javascript" src="./_serverDatation.js"></script>
<script type="text/javascript"><!--
function Update ()
{
javascript:_serverDatation();
setTimeout('Update()', 3000);
}
--></script>
</head>
<body onload='Update();'>
<table width=100% cellpadding=0 cellspacing=0 >
<tr><td align='center' bgcolor='#7FC6BC'><div id='serverDatation' style='display:inline'></div></td></tr>
<tr><td align='center' bgcolor='orange'><?php echo phpversion(); ?></td></tr>
</table>
</body>
</html> |
_serverDatation.js :
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
| function _serverDatation ()
{
var xhr=null;
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function()
{
if((xhr.readyState == 4) && (xhr.status == 200 || xhr.status==0) )
{
fillDatas(xhr);
}
};
xhr.open("GET", "./_serverDatation.php", true);
xhr.send(null);
}
function fillDatas (xhr)
{
var ladate = new Date();
var datation = (ladate.getHours() < 10 ? "0" + ladate.getHours() : ladate.getHours()) + ":" + (ladate.getMinutes() < 10 ? "0" + ladate.getMinutes() : ladate.getMinutes()) + ":" + (ladate.getSeconds() < 10 ? "0" + ladate.getSeconds() : ladate.getSeconds());
document.getElementById('serverDatation').innerHTML = "fillDatas - (Entrée @php)<br />" + datation + "<br />xhr.readyState='" + xhr.readyState + "'<br />xhr.status='" + xhr.status + "'";
var docXML = xhr.responseXml;
//var items = docXML.getElementsByTagName("serverdatation");
//document.getElementById('serverDatation').innerHTML = "fillDatas (Inside @php)<br />Count='" + items.length + "'<br />" + datation + "<br />xhr.readyState='" + xhr.readyState + "'<br />xhr.status='" + xhr.status + "'";
//for( i=0 ; i<items.length ; i++ )
//{
//document.getElementById('serverDatation').innerHTML = "fillDatas (Inside @php)<br />" + datation + "<br />xhr.readyState='" + xhr.readyState + "'<br />xhr.status='" + xhr.status + "'";
//document.getElementById('serverDatation').innerHTML = items.item(i).firstChild.data;
//}
document.getElementById('serverDatation').innerHTML = "fillDatas (Sortie @php)<br />" + datation + "<br />xhr.readyState='" + xhr.readyState + "'<br />xhr.status='" + xhr.status + "'<br /><br /><br /><br />responseText='" + xhr.responseText + "'";
} |
Et _serverDatation.php :
1 2 3 4 5 6 7 8
| <?php
header('Content-Type: text/xml; charset=UTF-8');
$data ='<?xml version="1.0" encoding="UTF-8" ?>';
$data .='<xmldatas>';
$data .='<serverdatation>'.date("H:i:s").' (cette datation vient bien du fichier _serverDatation.php)</serverdatation>';
$data .='</xmldatas>';
echo $data;
?> |
Ça fonctionne très bien, les deux datations sont rafraîchies toutes les 3 secondes :
Mais si je décommente :
var items = docXML.getElementsByTagName("serverdatation");
Alors le texte de fin de la fonction fillDatas n'est plus affiché même si l'heure de la première ligne est rafraîchie toutes les 3 secondes :
J'accède bien à xhr.responseText mais manifestement docXML.getElementsByTagName n'aime pas...
Là je suis un peu perdu...
Partager