[AJAX] Récupérer le résultat httpRequest dans une autre fonction
Bonjour à toutes et tous,
Soit une fonction de calcul toute bête :
Code:
1 2 3 4 5 6 7 8
|
function calcule(id_fournisseur){
var prix = 10;
var port = calcule_port(id_fournisseur);
alert(port);
var total = parseFloat(parseFloat(prix) + parseFloat(port));
return total;
} |
Le port se fait donc grâce à la fonction calcule_port que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
function calcule_port(id_fournisseur){
var xhr = getXhr('text');
var port = 0;
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
port = xhr.responseText;
alert(port); // affiche bien le montant du port
}
return port;
}
var data = "id_fournisseur="+id_fournisseur;
xhr.open("GET", "xhr_calcule_port.php?"+data,true);
xhr.send(null);
} |
La page xhr_calcule_port.php cherche dans la base le montant du port pour ce fournisseur et fait un echo du résultat.
Le alert de la fonction calcule_port sort bien le montant correct du port. Donc le hhtpRequest et le php font bien le boulot.
Par contre le "return port" ne va pas car la ligne :
Code:
1 2
|
var port = calcule_port(id_fournisseur); |
de la fonction calcule() me retourne "undefined".
Voyez-vous pourquoi ?
D'avance merci de votre aide.