Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2011, 11h41   #1
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
Par défaut 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.
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 15h27   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonsoir,

utilise la methode synchrone.
Code :
1
2
3
4
5
6
7
8
9
function calcule_port(id_fournisseur){
var xhr = getXhr('text');
var port = 0;
var data = "id_fournisseur="+id_fournisseur;
xhr.open("GET", "xhr_calcule_port.php?"+data,false);
xhr.send(null);
port = xhr.responseText;
return port;
}
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 16h23   #3
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
CQFD !

Bonjour, et merci beaucoup.
C'est exactement ça.

Je te souhaite une bonne soirée.
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h47.


 
 
 
 
Partenaires

Hébergement Web