Retourner une variable dans une autre fonction

Signaler
Messages postés
4
Date d'inscription
mercredi 6 octobre 2004
Statut
Membre
Dernière intervention
22 novembre 2007
-
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013
-
Bonjour à tous.

J'ai un petit soucis de javascript/xml.

dans le code suivant, j'ai deux fonctions.
Dans la première (choix_quizz) je vais chercher un fichier php sans pb.
Dans la deuxieme je vais aussi chercher un fichier et j'en ressort du html.
jusque la tout va bien.

Sauf que dans ma deuxieme fonction, je fais un "return view;" qui est censé renvoyer à la premiere fonction mon html generé.
Et bien sur, ca ne fonctionne pas.
Ce que je trouve bizar, c'est que quand je fais un alert view dans ma deuxieme fonction, il me ressort bien mon html, mais lorsque je fais un alert de ma viariable view dans ma premiere fonction (qui contient la deuxieme fonction), il me sort "undeafine"....
Merci d'avance!

function choix_quizz(y){
    var xhr = getXhr();
    xhr.onreadystatechange = function(){        if(xhr.readyState 4 && xhr.status 200){
            reponse = clean(xhr.responseXML.documentElement);
            var items    = reponse.getElementsByTagName("item");
            var html     = '';
            count        = items.length;
                html += '
';
                html += '
' + items[0].getElementsByTagName("QuestionId")[0].firstChild.nodeValue + '
';
                html += '
';
                html += items[0].getElementsByTagName("Intitule")[0].firstChild.nodeValue + '
';
                var view = choix_question(items[0].getElementsByTagName("QuestionId")[0].firstChild.nodeValue);
                html += view;
               
               
            document.getElementById('content').innerHTML = html;
        }
    }
    xhr.open("POST","select_quizz.php",true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send("quizz="+ y);
   
}

function choix_question(y){
    var xhr = getXhr();
    xhr.onreadystatechange = function(){        if(xhr.readyState 4 && xhr.status 200){
            reponse = clean(xhr.responseXML.documentElement);
            var items    = reponse.getElementsByTagName("item");
            var view     = '';
            count        = items.length;
            for(i = 0; i < count; i++) {
                view += '
' + items[i].getElementsByTagName("Intitule")[0].firstChild.nodeValue + '
';
               
            }
            alert(view);
            return view;
           
        }
    }
    xhr.open("POST","select_question.php",true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send("question="+ y);
   
}

1 réponse

Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bonjour,

pour qu'une fonction A réceptionne le résultat d'une autre fonction B, il faut que la fonction A fasse appel à la fonction B.
Ce n'est pas le cas dans le code que tu présente.

function calcul(a, b){
   affiche (a+b);
}

function affiche (c){
 alert (c);
}

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle