Ajax rafraîchir/actualiser un div

Eléphanteau du PHP | 10 Messages

24 mai 2007, 23:59

Bonjour,

Voici quelques jours que je cherche à savoir pour quelle raison le script ci-dessous ne fonctionne pas avec Firefox.

Quelqu'un aurait-il une petite idée d'où peux provenir le problème ?
Merci d'avance.

Voici le script :

FICHIER JS

Code : Tout sélectionner

function refresh_div() { aleatoire = Math.random(); var xhr_object = null; if(window.XMLHttpRequest) { // Firefox xhr_object = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer xhr_object = new ActiveXObject('Microsoft.XMLHTTP'); } var method = 'GET'; var filename = 'mon_script.php?a='+escape(aleatoire); xhr_object.open(method, filename, true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { var tmp = xhr_object.responseText; document.getElementById('Id_de_ma_div').innerHTML = tmp; } } xhr_object.send(); setTimeout('refresh_div()', 60000); } </script>
BODY

Code : Tout sélectionner

<body onload='refresh_div();'> <div id"Id_de_ma_div"></div> (Div à placer à l'endroit où l'on veut affiche mon_script.php) ... ... </body>

A bientôt,

Seb.
Modifié en dernier par cooolseb le 25 mai 2007, 17:12, modifié 1 fois.

ViPHP
ViPHP | 5924 Messages

25 mai 2007, 00:58

Fait un alert("test"); dans ce bloc :

Code : Tout sélectionner

if(xhr_object.readyState == 4) { var tmp = xhr_object.responseText; document.getElementById('Id_de_ma_div').innerHTML = tmp; }
Et teste avec Firefox...

Eléphanteau du PHP | 10 Messages

25 mai 2007, 06:46

Salut Sékiltoyai,

J'ai mis une alert et celle-ci ne me donne pas de réponse :?
J'en ai profité de faire un test d'alert ailleurs et je n'obtiens aucune alert sous Firefox !

J'ai comme l'impression que le script n'est même pas lu et je ne comprend pas pourquoi.


*edit*
Parcontre, dans la console d'erreur du navigateur j'ai :

Code : Tout sélectionner

Erreur : uncaught exception: [Exception... "Not enough arguments" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http://.../scripttest.php :: charge :: line 44" data: no]
Ce qui corrrespond à cette ligne :

Code : Tout sélectionner

xhr_object.send();

ViPHP
ViPHP | 5924 Messages

25 mai 2007, 07:38

Si tu n'as rien à envoyer, fait xhr_object.send("");

Eléphant du PHP | 377 Messages

25 mai 2007, 13:47

je dirais même plus :

Code : Tout sélectionner

xhr_object.send(null);
Petit scarabée deviendra grand

Eléphanteau du PHP | 10 Messages

25 mai 2007, 17:11

Si tu n'as rien à envoyer, fait xhr_object.send("");
je dirais même plus : xhr_object.send(null);
Tout fonctionne à présent !!
J'ai testé les deux et le script fonctionne correctement avec l'un ou l'autre et il n'y a aucun message d'erreur.

Merci beaucoup !

A+,

Seb.

Je laisse ci-dessous le code corrigé
****************************************************************
FICHIER JS

Code : Tout sélectionner

function refresh_div() { aleatoire = Math.random(); var xhr_object = null; if(window.XMLHttpRequest) { // Firefox xhr_object = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer xhr_object = new ActiveXObject('Microsoft.XMLHTTP'); } var method = 'GET'; var filename = 'mon_script.php?a='+escape(aleatoire); xhr_object.open(method, filename, true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { var tmp = xhr_object.responseText; document.getElementById('Id_de_ma_div').innerHTML = tmp; } } xhr_object.send(null); setTimeout('refresh_div()', 60000); } </script>
BODY

Code : Tout sélectionner

<body onload='refresh_div();'> <div id"Id_de_ma_div"></div> (Div à placer à l'endroit où l'on veut affiche mon_script.php) ... ... </body>