Recevoir une variable php en utilisant ajax

Fermé
tidave Messages postés 31 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 26 octobre 2019 - Modifié par tidave le 5/04/2010 à 04:40
tidave Messages postés 31 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 26 octobre 2019 - 5 avril 2010 à 16:03
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 :

<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.


<? echo $son_messages ;?>



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


A bientôt

3 réponses

moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
5 avril 2010 à 11:33
hello

si j'ai bien compris tu veux récupérer une variable ajax en php :

moi j'ai fait mon script (fonction resolution()) dans ajax avec bcp de galères !
j'ai écrit comme ça ma récupération
<body background="fond_lettres.gif" link="#FFFFFF" vlink="#C0C0C0" alink="#FFFF00" onLoad="document.getElementById('resolution').value = resolution()">

et en php je peux récupérer dans la page suivant
via $resolution = $_POST['resolution']; et ça marche.

Bonne chance
0
tidave Messages postés 31 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 26 octobre 2019 3
5 avril 2010 à 15:30
Salut
merci de ta reponse
mais moi je veux faire le contraire
c'est à dire, récupérer un variable depuis php et l'utiliser dans le script ajax.

ma valeur se trouve dans la page php appelée par ajax toutes les 2 sec.

je veux utiliser le callback pour utiliser cette variable dans le script appelant et déclencher une action en fonction de la valeur de cette variable

Merci de m'aider
0
tidave Messages postés 31 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 26 octobre 2019 3
5 avril 2010 à 16:03
Bonjour, mon probleme c'est que je voudrais faire ceci mais ça marche pas ;

Lancer une alerte par exemple si la variable est égale à ok (voir code)

Mais rien ne se passe.

<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>

Merci de m'aider
0