[AJAX] Requête AJAX qui ne fonctionne pas
Le fichier index.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <html>
<head>
<title>a useful dashboard for 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()', 901);
}
--></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>
</table>
</body>
</html> |
Avec le fichier _serverDatation.js :
Code:
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 _serverDatation ()
{
var xhr=null;
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function() { fillDatas(xhr); };
xhr.open("GET", "./_serverDatation.php", true);
xhr.send(null);
}
function fillDatas (xhr)
{
var docXML = xhr.responseXML;
var items = docXML.getElementsByTagName("serverDatation");
for( i=0 ; i<items.length ; i++ )
{
document.getElementById('serverDatation').innerHTML = items.item(i).firstChild.data;
}
} |
Et enfin le fichier _serverDatation.php :
Code:
1 2 3 4 5 6 7
| <?php
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\"?>\n";
echo "<XmlDatas>\n";
echo "<serverDatation>".date("H:i:s")."</serverDatation>\n";
echo "</XmlDatas>\n";
?> |
Et cela ne fonctionne pas (ces trois fichiers sont dans le même répertoire).
Par contre si je modifie fillDatas de _serverDatation.js comme suit :
Code:
1 2 3 4 5 6 7 8 9 10
| function fillDatas (xhr)
{
var docXML = xhr.responseXML;
// var items = docXML.getElementsByTagName("serverDatation");
// for( i=0 ; i<items.length ; i++ )
// {
// document.getElementById('serverDatation').innerHTML = items.item(i).firstChild.data;
// }
document.getElementById('serverDatation').innerHTML = 100*Math.random();
} |
Ça fonctionne bien, j'ai bien un chiffre au hasard affiché toutes les secondes ou presque (901 ms).
Une/des propositions SVP ?