Problème de return en javascript

LordSnotling Messages postés 6 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 7 octobre 2010 - 10 août 2009 à 16:44
LordSnotling Messages postés 6 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 7 octobre 2010 - 11 août 2009 à 19:03
Bonjour, voilà mon problème, j'ai une fonction en javascript qui devrait me retourner une string or il me retourne le code de la function, j'avoue que je ne comprend pas pourquoi.

voici mon code:

//##############################################
//fonction ajax
function connect(){
var data;
var url = 'test.php?val='+$('ids').value;
new Ajax.Request( url , {
method: "GET",
async : false,
onCreate : function() {
$('att').disabled= true ;},
onSuccess : data = renvoi
});

$('te').innerHTML = data;
}

function renvoi(req) {
var d = req.responseText;
return d;
}

je me retrouve donc avec [i]function renvoi(req) {
var d = req.responseText;
return d;
} /i affiché à l'écran au lieu de mon texte, j'ai même essayé de remplacer req.responseText par 'toto' mais j'ai le même problème ce n'est pas toto qui s'affiche mais le script

j'avoue ne pas savoir pourquoi donc toute aide sera la bien venue merci d'avance

2 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
11 août 2009 à 14:44
Bonjour un tout petit problème de prototype....

new Ajax.Request( url , {
method: "GET",
async : false,
onCreate : function() {
$('att').disabled= true ;},
onSuccess : function (response){
    data = response.responseText;
    }
});

mais le plus simple n'aurait-il point été de faire :

new Ajax.Request( url , {
method: "GET",
async : false,
onCreate : function() {
$('att').disabled= true ;},
onSuccess : function (response){
    $("te").innerHTML = response.responseText;
    }
});


[o-_-o]
0
LordSnotling Messages postés 6 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 7 octobre 2010
11 août 2009 à 19:03
Merci de ta réponse mais le problème avec ta solution c'est que je n'ai pas accès à data en dehors du onSuccess (data est undefined)

et data est en fait un objet JSON { bool:true, val:\'toto\' }, et je voudrais y avoir accès en dehors du onSuccess pour pouvoir tester la valeur de bool, je ne peux pas le faire dans le onSuccess car je voudrais boucler sur la requete ajax tant que bool est à false de cette façon:
[p]

while(!ok){
new Ajax.Request( url , {

method: "GET",

async : false,

onCreate : function() {$('att').disabled= true ;},
onSuccess : data = function (response){
d = eval("("+req.responseText+")");
return d;
}
});
ok = data.bool;
}
/p

j'ai donc besoin de récupéré mon objet en dehors de la requête ajax d'ou le return

mais comme dit précédemment il me retourne le code javascript de la fonction et non la valeur de mon objet, et si j'affecte la valeur dans le onSuccess à data, il est indéfini en dehors ce qui est normal.

Merci de m'éclairer
0
Rejoignez-nous