Ajax, return XhrObj.responseText;

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Ajax, return XhrObj.responseText;

Message le Lun Juin 19, 2006 13:09

Bonjour,

Je découvre les techniques Ajax en profondeur !
Mais une question se pose.

Je voudrais non pas afficher le résultat obtenu directement dans un élément de la page, mais le récuperer dans une variable javascript, afin de l'exploiter.

Pour cela, j'ai une fonction qui me récupère mes données, et une autre qui les traite.
Dans la fonction récupérant les données, j'ai essayé cela :
Code: Tout sélectionner
var result = XhrObj.responseText;

Ou XhrObj est mon objet XMLHttpRequest

Cependant, j'ai une erreur de droits. Il refuse de faire le return, et me retourne retourne null, même lorsque la variable result prends une valeur "correcte" dans la première fonction.

D'ou ma question. existe-t-il une méthode/fonction en javascript qui permette de transformer cet objet en chaine de caractères ?
Actuellement, j'ai soit un 1 soit un 0 de retourné, mais je pourrais également avoir, à terme, des chaines de caractères ou autres chiffres.

Merci d'avance :P

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Lun Juin 19, 2006 14:26

J'ai résolu le problème en utilisant une variable globale que je réutilise dans ma seconde fonction au lieu de la retourner.
Mais si quelqu'un a une solution plus propre, je suis preneur.

connecTravel
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 21 Avr 2006

Message le Mar Aoû 22, 2006 14:04

Bon, je cherche, je cherche, je cherche... exactement ce que tu cherchais, mais je ne trouve rien du tout :(((

As tu trouver une solution plus "propre" que la variable globale finalement ?
Si non, peux tu poster un extrait de ton code avec les variable globales ?

Merci d'avance, car là, ma patience est à son maximum !

A+
Connectravel

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Mar Aoû 22, 2006 15:53

Non, je n'ai pas trouvé d'autre solution.
Et je n'ai plus le code sous la main, je suis désolé.

connecTravel
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 21 Avr 2006

Message le Mer Aoû 23, 2006 7:26

Bon, ben alors je relance le débat !
Donc, pour résumer la situation, j'ai un joli script avec plusieurs parametres :
data : les donnée posté vers la page à interroger avec le HTTPrequest
method : qui permet d'envoyer les données soit en POST soit en GET
page : qui contient la page à "interroger"
sortie : qui contient l'ID du "composant" dans lequel je souhaite balancer le resultat que ce soit un div ou un champ input

Ce que j'aimerais c'est que sur un appel avec un parametre spécifique pour sortie genre "resultat_variable" qui fasse que mon script ne fasse pas un innerHTML ou autre truc du genre mais plutot un
Code: Tout sélectionner
var result = XhrObj.responseText

ou mieux :
Code: Tout sélectionner
return XhrObj.responseText

dès lors, dans ma page client je peux faire un appel genre

Code: Tout sélectionner
if(script_ajax("id_client=100", "post", "fonction_pays_serveur.php", "resultat_variable") != "FRANCE") {
// mon traitement si mon client n'est pas en France
} else {
// Mon traitement si mon client est en France
}


Je précise qu'à l'haure actuelle, je n'ai aucun probleme pour balancer directement le flus que me retourne mon "script_ajax()" dans un dic ou autre joyeuseté...par exemple :

si sur ma page destiné client j'ai un <div id="recup_ajax"></div>
ma fonction
Code: Tout sélectionner
script_ajax("id_client=100", "post", "fonction_pays_serveur.php", "recup_ajax");


fonctionne très bien et me met bien le flux dans mon div...

Par contre si je rajoute dans mon script_ajax un test genre :
if (sortie == "resultat_variable") {
return XhrObj.responseText;
} else {
content.innerHTML = XhrObj.responseText;
}

j'ai systémtiquement un résultat "undefined" (pour sortie = resultat_variable)

Je ne sais pas si j'ai été assez clair... Merci de votre aide en tout cas !

A+
Connectravel


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité