Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# problème callback avec xmlhttprequest

Envoyé par : rozwel

Date : 08/05/2005 02:34

Bon mon problème n'a pas grand chose à voir avec XUL mais bon comme AJAX est une idée un peu neuve c'est pas évident de trouver des gens qui font joujou avec ce genre de choses donc je tente ma chance où Google m'indique qu'il y a du "gens qui connait".

En fait perso j'utilise l'objet XmlHttpRequest pour charger une page par régions. Le principe c'est que ma page est composée de 4 régions : un header, un menu, un contenu et un pied. Un clic sur un élément du menu appelle une fonction reloadRegion("id de la région") au lieu d'un simple lien vers une autre page.

Cette fonction reloadRegion utilise un objet XmlHttpRequest (en variable globale) et envoie une requête vers un script PHP qui ne retourne que le contenu de la région à recharger comme ça dans l'idéal rien d'autre ne bouge et le strict nécessaire est mis à jour. Le problème c'est que dans le callback avec ce qui est sensé contenir la réponse j'ai... RIEN ! Nada walou keutchi ! (c'est alert qui a dit). Et j'ai essayé le coup du flush dans le script php ça n'a rien changé.

Alors déjà voilà la fonction reloadRegion :

function reloadRegion(region,section,part,language){
if(xmlhttp){
	var loading_artifact;
	var url = "index_ajax.php5?region="+region+"&section="+section+"&part="+part+"&language="+language;
	alert(url);
	loadFragmentInToElement(url,region+"-container",'<p>chargement...</p>');
}
else{
	alert("Impossible d'accéder à la requete");
}
}

Ensuite voici la fonction magique loadFragmentInToElement

function loadFragmentInToElement(fragment_url, element_id, loading_artifact) {
   var element = document.getElementById(element_id);
	element.innerHTML = loading_artifact;
   xmlhttp.open("GET", fragment_url, true);
   xmlhttp.onreadystatechange = function() {
       if (xmlhttp.readyState == 4) {// && xmlhttp.status == 200) {
					alert(xmlhttp.responseText);
           element.innerHTML = xmlhttp.responseText;
       }
   }
   xmlhttp.send(null);
}

Vous remarquerez que j'ai zappé le coup de la vérification du statut pour l'instant le temps de réussir à obtenir une réponse à ma requête. La variable globale xmlhttp est initialisée au chargement du script et j'ai testé la requête php à la main les données sont bien retournées nickel.

Pourtant rien à faire, le alert(xmlhttp.responseText); est vide et si je décommente le xmlhttpstatus j'obtiens cette fameuse erreur comme quoi l'objet n'est pas disponible.

Quelqu'un aurait-il une idée de ce qui pose problème. Merci beaucoup par avance.

rozwel

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.