Bonjour à toutes et tous,

Soit une fonction de calcul toute bête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
var port = calcule_port(id_fournisseur);
de la fonction calcule() me retourne "undefined".
Voyez-vous pourquoi ?
D'avance merci de votre aide.