Recevoir une variable php en utilisant ajax et evenement

Nouveau WRInaute
Bonjour,
Alors voila, je voudrais faire ce qui suit en utilisant php et ajax.

Alors j'ai une page ajax qui s'appelle "son.php", qui est recharger toutes 2 secondes par ajax .

Cette page affiche simplement une variable php qui est "$son_messages", c'ette variable est soit "ok" soit vide.

Alors mon probleme est le suivant:

Je voudrais recuperer le resultat de cette variable par ajax, c'est a dire que mon script ajax lise ou recupere la variable $son_message en question et "agisse", suivant la valeur de cette variable.
ar exemple : if($son_messages=="ok") alors on apelle une fonction qui s'appelle jouer_son() ou tout autre evenement, comme l'ouverture d'une pop up par exemple.

Alors j'essaie d'etre le plus claire que possible.

Alors voici mes codes.

Le code qui appelle la page par ajax :

Code:
<script language="javascript" type="text/javascript"> 
function refresh_div() { 
var xhr_object = null; 
if (window.XMLHttpRequest) { 
xhr_object = new XMLHttpRequest(); 
} else if (window.ActiveXObject) { 
try { 
xhr_object = new ActiveXObject('Microsoft.XMLHTTP'); 
} catch(e) { 
} 
} else { 
} 
var method = 'GET'; 
var filename = 'son.php'; 
xhr_object.open(method, filename, true); 
xhr_object.onreadystatechange = function() { 
if(xhr_object.readyState == 4) { 
var tmp = xhr_object.responseText; 
document.getElementById('div_son').innerHTML = tmp; 
} 
}; 
xhr_object.send(null); 
} 
window.onload = function() { 
setTimeout(refresh_div, 2000); 
}; 
</script>


Ma page "son.php" affiche simplement une variable, c'est elle que je veux recuperer.


Code:
<? echo $son_messages ;?>



Merci de m'aider
J'ai deja passé des jours dessus, sans resultats


A bientôt
 
Nouveau WRInaute
J'i essayé ça, pour faire un test mais ça marche pas

Code:
<script language="javascript" type="text/javascript"> 
function refresh_div() { 
    var xhr_object = null; 
    if (window.XMLHttpRequest) { 
        xhr_object = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
        try { 
            xhr_object = new ActiveXObject('Microsoft.XMLHTTP'); 
        } catch(e) { 
        } 
    } else { 
    } 
    var method = 'POST'; 
    var filename = 'son.php'; 
    xhr_object.open(method, filename, true); 
    xhr_object.onreadystatechange = function() { 
        if(xhr_object.readyState == 4) { 
            var tmp = xhr_object.responseText; 
            document.getElementById('div_son').innerHTML = tmp; 
               if (tmp == "ok")  {  
        alert("son ok") ;               
          } 
        var timer=setTimeout("refresh_div()",5000); // rafraichie toute les 1sec 
        } 
    } 
    xhr_object.send(null); 
} 
</script>


encore merci pour votre aide a venir
 
WRInaute passionné
Utilise jquery

et dans le javascript il te suffira de faire

Code:
$.get('son.php', function(data) {
  if (data == 'OK')                               //<========= ici ton test
               appel_ma_methode();
});

si tu trouve pas ton bonheur avec la methode get regarde ici http://api.jquery.com/category/ajax/ tu as un tas de methode pour gérer ajax de façon plus clean qu'en implémentant des XHR à la mano.
 
Nouveau WRInaute
Merci pour ta réponse
mais là je suis un peu perdu
donc je vais potasser un peu

A bientôt

Je pensais pas que c'etait aussi dur de faire ce que je veux faire
juste connaitre la valeur de tmp

et d'agir en fonction


J'essai avec tous les navigateurs
 
WRInaute accro
Si tu veux que ça fonctionne avec tous les navigateurs, mieux vaut utiliser jquery ou prototype que de faire ça à la mano.
 
Discussions similaires
Haut