Problème actualisation auto Ajax

Résolu
Signaler
Messages postés
4
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
28 août 2009
-
Messages postés
4
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
28 août 2009
-
Bonsoir,
bon j'ai un souci, je souhaiterais qu'une div de ma page affiche un message suivant une donnée précise dans une table sql.
J'utilise setInterval mais le souci c'est que même si la valeur change dans ma table sql, cela ne change pas sur ma page à moins que j'en ouvre un autre...
Pour mettre à jour j'ai sur ma page principale une fonction qui ouvre une page php (code fournit plus bas).

Merci d'avance pour ceux qui voudrons bien m'aider...

Page avec le script :

<hr /><script type= "text/javascript" language="javascript">

function makeRequest(url) {

var httpRequest = false;

if (window.XMLHttpRequest) {
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType) {
httpRequest.overrideMimeType('text/xml');

}
}
else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}

if (!httpRequest) {
alert('Abandon : ( Impossible de créer une instance XMLHTTP');
return false;
}
httpRequest.onreadystatechange = function() { alertContents(httpRequest); };
httpRequest.open('GET', url, true);
httpRequest.send(null);

}

function alertContents(httpRequest) {

if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
document.getElementById("zone").innerHTML = ""+httpRequest.responseText;
} else {
alert('Un problème est survenu avec la requête.');
}
}

}
var timer=setInterval("makeRequest('a_qui.php')", 2000);
</script>

dfsdfsdfs

<hr />

Page qui va cherché la donnée sur la table (a_qui.php) :
<hr />
<?
include 'connect_db.php';

$sql = "SELECT a_qui FROM info where id='1'";
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);
$a_qui = $data['a_qui'];

if($a_qui=='1')
echo 'one';
else if($a_qui=='2')
echo 'two';
else { echo 'three'; }

?>
<hr />
Je sais j'aurais pu utiliser un switch sur la seconde page, mais c'est juste pour faire des test....

Donc voilà j'ai beau changé la valeur a_qui dans la table rien ne change, a part si comme j'ai dit j'ouvre de nouveau la page entière ou si j'ouvre la page a_qui.php, ce qui fera quand dans ma page ou y a ma boucle la valeur changera par magie....:(

Bonne soirée/nuit/journée à vous

2 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

    je n'ai pas vérifié s'il n'y avait pas d'erreurs dans le script.
    je suppose qu'il n'y en a pas ?
    si c'est sûr, ajouter un ?valeur_"aléatoire" derrière l'url

    var d = new Date()
    var t = Date.parse(d);
    setInterval( function()
                    { makeRequest('a_qui.php/?'+t); }, 2000 );

<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
4
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
28 août 2009

Merci c'était bien ça. Juste avant toi kkun m'a dit la même chose ^^
J'avais bien tenté un moment de rajouter une ligne de code ki logiquement empêche le navigateur de mettre les pages en caches, mais de un j'aimais pas trop l'idée, et de deux ça fonctionnait pas plus lol.

Mais là nikel, en rajoutant une variable qui change à chaque fois c'est tout bon :)
Merci