22-05-2007, 12:39 PM
En effet, il y a un soucis.
Le Eval doit remplacer la partie de la fonction existant dans le onReadyStateChange.
Je reprends ton exemple.
Pour la partie HTML
Le Eval doit remplacer la partie de la fonction existant dans le onReadyStateChange.
Je reprends ton exemple.
Pour la partie HTML
Code PHP :
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Augmentation des ressources sans actualiser</title>
<script type="text/javascript" src="ajax.js">
//Le eval ici ne sert à rien tu peux le virer
//eval(xhr_object.responseText);
</script>
</head>
<body onload="window.setTimeout('resRequest()',5000)">
<div id="resId1">
</div>
<div id="resId2">
</div>
<br />
</body>
</html>
Le code PHP, on y touche pas. Il me semble correct.
Le dernier fichier par contre
Code PHP :
<?php
/** On verifie si le navigateur accepte le XMLHttpRequest **/
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("GET", "multiple.php", true)
xhr_object.onreadystatechange = function() { // Si le readyState change alors on execute ce qui est en bas
if(xhr_object.readyState == 4 && xhr_object.status == 200)
{
//document.getElementById("resId1").innerHTML = xhr_object.responseText;
// c'est ici que le eval se déclenche.
// Il va évaluer le code retourné par PHP dont la valeur se trouve dans xhr_object.responseText.
eval(xhr_object.responseText);
}
}
xhr_object.send(null); // On envoie rien car on utilise pas la méthode POST
window.setTimeout('resRequest()',5000); // On appelle cette fonction tout es les 1000millisecondes qui vaut 1secondes.
}