Fonction AJAX qui ne se déclenche pas [Résolu]

Shivan0910 149 Messages postés mardi 7 janvier 2003Date d'inscription 24 novembre 2010 Dernière intervention - 18 nov. 2010 à 23:07 - Dernière réponse : Shivan0910 149 Messages postés mardi 7 janvier 2003Date d'inscription 24 novembre 2010 Dernière intervention
- 24 nov. 2010 à 08:37
Bonjour,

Je sollicite de votre bienveillance dans la résolution de ce problème qui tend à m'épuiser

J'ai deux fonctions
function creationXHR()
{
var XHR=null;
if(window.XMLHttpRequest || window.ActiveXObject)
{
if(window.ActiveXObject)
{
try
{XHR=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e)
{XHR=new ActiveXObject("Microsoft.XMLHTTP");}
}
else
{
XHR=new XMLHttpRequest();
if(XHR.overrideMimeType){XHR.overrideMimeType('text/xml');}
}
}
else{alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");return null;}
return XHR;
}

function actualiserPlateau()
{
var XHR=creationXHR();
if(XHR==null)
{
alert("Impossible d'utiliser Ajax avec votre navigateur.");
}
else
{ XHR.open("GET","ajax_afficher_plateau.php",false);
XHR.onreadystatechange = function()
{
alert('');
if(XHR.readyState==4 && (XHR.status==0 || XHR.status==200))
{ remplacerContenu("plateau",XHR.responseText);
}
};
}
XHR.send(null);
}


Comme vous l'aurez deviné, creationXHR créé un objet XHR qui est renvoyé tout bien. Ca, ca semble marcher.
Ce qui semble inopérant c'est que le "alert('');" ne s'affiche pas (et la suite non plus d'ailleurs) alors que si je le mets avant le XHR.onready... il s'affiche...

J'en déduis que XHR ne change pas d'état... mais pourquoi ?

Info : ajax_afficher_plateau.php ne contient que <?php echo "essai";?>

Merci d'avance pour toute idée et aide apportée à la résolution de mon (petit) casse-tête personnel !
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 19 nov. 2010 à 11:54
3
Merci
Bonjour,
fait ta requête en asynchrone
XHR.open("GET","ajax_afficher_plateau.php", true); 

je découvre l'AJAX et
alors il existe, entre bien d'autres L’objet XMLHttpRequest

;O)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de PetoleTeam
rurusnbx 2 Messages postés mardi 9 novembre 2010Date d'inscription 19 novembre 2010 Dernière intervention - 19 nov. 2010 à 10:35
0
Merci
function actualiserPlateau() 
{ 
var XHR=creationXHR(); 
if(XHR==null) { 
alert("Impossible d'utiliser Ajax avec votre navigateur."); 
} 
else 
{ 
XHR.open("GET","ajax_afficher_plateau.php",false); 
XHR.onreadystatechange = function() 

alert(''); 

if(XHR.readyState==4 && (XHR.status==0 || XHR.status==200)) { 
remplacerContenu("plateau",XHR.responseText); 
}
} 
XHR.send(null); 
} 
Commenter la réponse de rurusnbx
rurusnbx 2 Messages postés mardi 9 novembre 2010Date d'inscription 19 novembre 2010 Dernière intervention - 19 nov. 2010 à 10:40
0
Merci
Pense à implémenter ton code...

function actualiserPlateau() 
{ 
var XHR=creationXHR(); 
if(XHR==null) { 
alert("Impossible d'utiliser Ajax avec votre navigateur."); 
} 
else 
{ 
XHR.open("GET","ajax_afficher_plateau.php",false); 
XHR.onreadystatechange = function() 

alert(''); 

if(XHR.readyState==4 && (XHR.status==0 || XHR.status==200)) { 
remplacerContenu("plateau",XHR.responseText); 
}
} 
XHR.send(null); 
}


function creationXHR() 
{ 
var XHR=null; 
if(window.XMLHttpRequest || window.ActiveXObject){ 
if(window.ActiveXObject){ 
try 
{XHR=new ActiveXObject("Msxml2.XMLHTTP");} 
catch(e) 
{XHR=new ActiveXObject("Microsoft.XMLHTTP");} 
}
} 
else{ 
XHR=new XMLHttpRequest(); 
if(XHR.overrideMimeType){
XHR.overrideMimeType('text/xml');
} 
else{
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
} 
return XHR; 
}

Commenter la réponse de rurusnbx
Shivan0910 149 Messages postés mardi 7 janvier 2003Date d'inscription 24 novembre 2010 Dernière intervention - 19 nov. 2010 à 10:46
0
Merci
Merci pour la mise en forme : mon fichier est bien implémenté, c'est le copier/coller qui n'est pas bien passé...

Je ne suis pas sur de voir une modif par contre...
Si ce n'est les accolades qui ont disparu de la fonction anonyme... c'est normal ? Parce que le alert (qui est un test simplement pour vérifier que ca rentre bien dans la fonction) et le If(XHR.readystate...) sont censés être exécuté dans la fonction...

Vous l'avez compris, je découvre l'AJAX et le javascript (dont je n'ai que quelques notions basiques) et j'ai copier ce code d'un bouquin, mais je ne comprends pas ce qui ne fonctionne pas !

Merci pour votre aide en tout cas !
Commenter la réponse de Shivan0910
Shivan0910 149 Messages postés mardi 7 janvier 2003Date d'inscription 24 novembre 2010 Dernière intervention - 19 nov. 2010 à 11:59
0
Merci
Merci pour votre aide !

Il me semble que j'avais déjà testé le passage de ce paramètre à true, mais ca n'y a rien changé, je vais retester ça, même si je ne vois pas bien pouquoi ca ne déclencherai pas le "onstatechange" et donc que ca ne lancerait pas la function anonyme, mais je vais essayer !

Merci pour le lien, je suis bien conscients qu'une multitude de scripts existe avec des fonctions plus ou moins avancées sur la gestion du httprequest, mais c'est juste les infime variations entre ses scripts que je n'arrive pas à décoder qui me perde un peu... Je jetterai un oeil à ton lien pour comparer avec mes versions des fonctions !

Encore merci !
Commenter la réponse de Shivan0910
Shivan0910 149 Messages postés mardi 7 janvier 2003Date d'inscription 24 novembre 2010 Dernière intervention - 22 nov. 2010 à 21:48
0
Merci
Merci !
Donc effectivement il fallait passer la fonction en asynchrone...

Merci encore !
Commenter la réponse de Shivan0910
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 23 nov. 2010 à 18:58
0
Merci
Bonjour,
...et j'ai copier ce code d'un bouquin,...
tu avais quand même du modifier quelque chose ou alors le bouquin est complètement n....

;O)

Le principal, c'est l'essentiel ou inversement.
Commenter la réponse de PetoleTeam
Shivan0910 149 Messages postés mardi 7 janvier 2003Date d'inscription 24 novembre 2010 Dernière intervention - 24 nov. 2010 à 08:37
0
Merci
Probablement... Avec tous mes essais, je ne sais plus trop, mais certainement !

Encore merci !
Commenter la réponse de Shivan0910

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.