La donnée récupérée ne se met pas à jour par l'Ajax
cs_majong
Messages postés47Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention12 juin 2020
-
20 avril 2008 à 21:38
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 2012
-
22 avril 2008 à 12:40
Bonjour, quelqu'un pourra t-il me dire pourquoi le changement ne s'effectue uniquement en ouvrant la page html (un changement par phpadmin ne se répercute pas en direct) ?
le fichier test.php se connecte à une bdd et renvoie une ligne: echo ''.$row['prix'].'
';
et le fichier test.html contient (le code n'est pas de moi, je l'ai pris un peu partout sur le net):
<script language="javascript">
var xhr_object;
function affiche()
{
setTimeout('affiche()',10000);
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", "test.php", true);
//xhr_object.async=false;
xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4)
{
//alert(xhr_object.responseText);
document.getElementById("div_b").innerHTML=xhr_object.responseText;
}
}
cs_majong
Messages postés47Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention12 juin 2020 21 avril 2008 à 10:49
normalement avec le code et setTimeout('affiche()',10000);
le système devrait affiché les données récentes de la bdd tous les 10s. Pourquoi ne le fait-il pas ? Par contre si je ferme la page html et je que le relance, l'affichage est correcte.
J'ai enlevé le commentaire de la ligne //alert(xhr_object.responseText) le message s'affiche bien tous les 10s mais c'est le même message même s'il y a un changement dans la bdd.
Il y a un bug quelque part !!!
J'espère être compréhensible.
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 21 avril 2008 à 12:46
OK, ça m'arrivait aussi quand j'utilisais la même métode que toi pour mes objets xhr, comme si la requête était mise en cache, et ne se réexécutait pas.
Essaie avec cette classe-là plutôt qui est plus pratique, j'ai pas de problème avec, mais attention lis mes commentaires en-dessous et fais les modifs que je mentionne :