Rafraichir variable php avec ajax si nécéssaire
10 messages
• Page 1 sur 1
-

sff - WRInaute occasionnel

- Messages: 336
- Inscription: 2 Fév 2005
Rafraichir variable php avec ajax si nécéssaire
Bonjour, j'ai encore un problème avec Ajax. En effet le code suivant fonctionne parfaitement. Il recharge toute les 2 secondes le contenu d'une page dans une <div>
Ce que je cherche à faire, c'est recharger le contenu de la page dans la div, seulement ci le contenu de la page à changer, histoire de ne pas utiliser de la ressource pour rien.
Voici le code qui fonctionne :
Ce que je cherche à faire, c'est recharger le contenu de la page dans la div, seulement ci le contenu de la page à changer, histoire de ne pas utiliser de la ressource pour rien.
Voici le code qui fonctionne :
- Code: Tout sélectionner
function getDiv1(MyDiv, MyUrl) {
var xmlhttp1 = null;
var mondiv1 = document.getElementById(MyDiv);
if (!mondiv1) {
return 1;
}
if (xmlhttp1 && xmlhttp1.readyState != 0) {
xmlhttp1.abort();
}
xmlhttp1 = getXMLHTTP();
if (xmlhttp1) {
xmlhttp1.open("GET", MyUrl, true);
/* on définit ce qui doit se passer quand la page répondra */
xmlhttp1.onreadystatechange = function() {
if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ {
mondiv1.innerHTML = xmlhttp1.responseText;
}
}
xmlhttp1.send(null);
}
}
function rafraichir()
{
getDiv1('babblebox', '?do=babblebox');
setTimeout("rafraichir()", 2000);
}
window.onload = function() { rafraichir();}
Dans la page html :
<div id="babblebox"></div>
- FloBaoti
- WRInaute impliqué

- Messages: 755
- Inscription: 30 Avr 2006
Re: Rafraichir variable php avec ajax si nécéssaire
sff a écrit:Ce que je cherche à faire, c'est recharger le contenu de la page dans la div, seulement ci le contenu de la page à changer, histoire de ne pas utiliser de la ressource pour rien.
Et comment sais-tu quand "le contenu de la page a changé" ?
Une fois cette question résolue, tu sauras certainement comment la mettre en place...
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Tu rajoutes un condition "est-ce que mon texte est différent de l'actuel" ici et le tour est joué:
- Code: Tout sélectionner
if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ {
mondiv1.innerHTML = xmlhttp1.responseText;
}
-

sff - WRInaute occasionnel

- Messages: 336
- Inscription: 2 Fév 2005
Imaginons que dans la div en question on rafraichit une page affichant les enregistements d'une table sql.
On a juste à vérifier, si le nombre d'enregistrement dans cette table est différent ou pas.
Mais tout ceci se situe coté php, donc comment récupérer ces infos dans le javascript?
Genre si le nombre d'enregistrement a changer on peut faire un echo, une alert()... mais comment récupérer tout ca pour faire une condition dans le js.
Merci à ceux qui m'aideront.
On a juste à vérifier, si le nombre d'enregistrement dans cette table est différent ou pas.
Mais tout ceci se situe coté php, donc comment récupérer ces infos dans le javascript?
Genre si le nombre d'enregistrement a changer on peut faire un echo, une alert()... mais comment récupérer tout ca pour faire une condition dans le js.
Merci à ceux qui m'aideront.
-

sff - WRInaute occasionnel

- Messages: 336
- Inscription: 2 Fév 2005
Suite
Non désolé, mais j'arrive pas.
J'ai une page test2.php avec un echo :
Et j'ai la page test.php avec le js et la div qui affiche test2.php
Je vois vraiment pas comment faire pour que le js arrête de charger toutes les seconde test2.php tant que cette page n'a pas changé.
J'ai une page test2.php avec un echo :
- Code: Tout sélectionner
<?php
echo 'texte';
?>
Et j'ai la page test.php avec le js et la div qui affiche test2.php
- Code: Tout sélectionner
<html>
<script type="text/javascript">
// Fonction pour Ajax
function getXMLHTTP()
{
var xhr=null;
if (window.XMLHttpRequest) // Firefox et autres.
xhr = new XMLHttpRequest();
else if (window.ActiveXObject) // Internet Explorer.
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e1)
{
xhr = null;
}
}
}
else
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return xhr;
}
// Div refresh.
function getDiv1(MyDiv, MyUrl) {
var xmlhttp1 = null;
var mondiv1 = document.getElementById(MyDiv);
if (!mondiv1) {
return 1;
}
if (xmlhttp1 && xmlhttp1.readyState != 0) {
xmlhttp1.abort();
}
xmlhttp1 = getXMLHTTP();
if (xmlhttp1) {
xmlhttp1.open("GET", MyUrl, true);
/* on définit ce qui doit se passer quand la page répondra */
xmlhttp1.onreadystatechange = function() {
if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ {
mondiv1.innerHTML = xmlhttp1.responseText;
}
}
xmlhttp1.send(null);
}
}
function rafraichir()
{
getDiv1('test2', 'test2.php');
setTimeout("rafraichir()", 1000);
}
window.onload = function() { rafraichir();}
</script>
</script>
<body>
<DIV ID="test2">
</div>
</body> </html>
Je vois vraiment pas comment faire pour que le js arrête de charger toutes les seconde test2.php tant que cette page n'a pas changé.
-

zeb - WRInaute accro

- Messages: 4569
- Inscription: 5 Déc 2004
le seul truc que tu peut gagner est de ne pas changer le contenu de ta page html si le contenu renvoyé est vide (parce que pas de changement) c'est de la BP que tu gagnera mais tu sera forcé de faire tourner qque chose côté serveur pour savoir si oui ou non qque a changé dans la base.
10 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Rafraichir variable php avec ajax
- AJax, php et xml, probleme de variable php
- Recevoir une variable php en utilisant ajax et evenement
- Rafraichir div avec ajax
- [AJAX] Rafraichir une page avec un bouton
- Rafraichir ma page PHP
- Probleme variable php '.xxxx.' dans autre variable '.zzzz.'
- Problème de variable pour Ajax
- Récupérer une variable supplémentaire dans un script en ajax
- [Php -Facile] Fichiers en php et incrementation de variable
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


