IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

R�cup�ration valeur retour d'une fonction Javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2012
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Services de proximit�

    Informations forums :
    Inscription : Juillet 2012
    Messages : 93
    Par d�faut R�cup�ration valeur retour d'une fonction Javascript
    Bonjour,
    Je sollicite votre aide afin de comprendre un petit probl�me assez simple :
    - j'ai une page JSP pour saisir des param�tres et un bouton de calcul qui affiche un r�sultat sur cette m�me page.

    Les fonction Javascript associ�es au bouton sont les suivantes :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    function calculerCo2(){ 
    var distance  = document.getElementById("distance").value;
    var duree     = document.getElementById("duree").value;
     
    var co2       = Co2calc(distance, duree);	
    // alert("co2 : " + co2);
     
    document.getElementById("co2").value = co2;
    }
     
    function Co2calc(dist, dur){
    	var request = null;
     
    	try {
            request = new XMLHttpRequest();  
            }catch (e){
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e) {
                alert("XMLHttpRequest error: " + e);}
            }
     
            request.open("POST", "calculco2.calc");   
     
            var par= "distance=" + dist + "&" + "duree=" + dur;
     
            request.setRequestHeader("Content-type", "application/x-www-form-
            urlencoded");
     
            request.send(par);  
     
            var calc_co2 = 0;
            var resultat   = 0;
     
            request.onreadystatechange = function(){
    	   if(request.readyState == 4 && request.status == 200){
    		   resultat   = request.responseText;
    		   calc_co2 = Math.round(resultat*1000)/1000;}
            };
     
           // alert("calc_co2 : " + calc_co2);
              return calc_co2;
    }
    Le probl�me est que le r�sultat obtenu est �gale � 0 dans ma page JSP.
    Hors, si j'active les alert(), j'obtiens les messages suivant :
    calc_co2 : 0
    co2 : 4.09
    et ma page JSP affiche bien le bon r�sultat (4.09)

    Je n'y comprends plus rien.

    Je pensais avoir bien cod� la r�cup�ration de la valeur de retour de la fonction Co2calc() dans la variable co2.

    Est-ce un probl�me de codage en Javascript ou de d�claration de variables ?
    Je ne suis pas un expert en Javascript, mais j'ai cod� comme les exemples trouv�s sur lnternet.

    Si vous pouvez m'aider � r�soudre ce probl�me, je vous en remercie par avance pour vos r�ponses.

    ejazz75

  2. #2
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2012
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Services de proximit�

    Informations forums :
    Inscription : Juillet 2012
    Messages : 93
    Par d�faut R�cup�ration valeur retour d'une fonction Javascript
    Merci Bovine pour ta r�ponse. J'ai bien lu ton lien.
    Je comprends bien la "chronologie" des alert(), mais pourquoi je ne r�cup�re pas le bon r�sultat au deuxi�me passage. L'affectation du r�sultat � la variable de retour est bien faite pourtant.
    J'ai effectu� le test en mode asynchrone ou synchrone, j'obtiens les m�mes r�sultats.
    Que dois-je modifier dans mon code pour �tre propre et conforme aux r�gles de codage ?
    Merci pour ton aide.
    ejazz75

  4. #4
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Merci Bovine
    Tu commets beaucoup d'erreurs de conception dans ton code.
    Tes variables co2 et Co2calc sont locales (d�clar�es dans le corps de la fonction) or comme les fonctions n'attendent pas le retour de la requ�te AJAX pour continuer leur ex�cution, Co2calc() renvoie 0 et calculerCo2() affecte ce 0 � co2. Puis les fonctions terminent leur ex�cution et les variables locales sont d�truites. Donc � aucun moment tu n'affectes le bon r�sultat et la valeur n'existe ni au premier passage ni aux suivants !
    La seule diff�rence qu'il y a avec les alert() est que ces messages bloquent l'ex�cution des fonctions et laissent donc le temps � la requ�te de renvoyer un r�sultat.
    J'ai effectu� le test en mode asynchrone ou synchrone, j'obtiens les m�mes r�sultats.
    Tu as d� faire aussi des erreurs en mode synchrone...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2012
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Services de proximit�

    Informations forums :
    Inscription : Juillet 2012
    Messages : 93
    Par d�faut R�cup�ration valeur retour d'une fonction Javascript
    Je suis sinc�rement d�sol� pour l'erreur de frappe concernant ton nom.
    Ce n'est pas dans mon intention de t'insulter.
    J'ai m�me test� le passage des variables en global, mais les r�sultats sont les m�mes. Alors comment faire pour que les fonctions attendent le retour de la requ�te AJAX pour continuer leur ex�cution. J'ai cru comprendre que cela se faisait sur le 3�me argument dans l'instruction request.open().
    J'ai du faire toute les combinaisons de code pour r�cup�rer le bon r�sultat, mais c'est un �chec total depuis 2 jours!!!
    Je peux comprendre que tu ne puisses pas m'orienter d'avantage, et je te remercie pour l'aide apport�e jusqu'� maintenant.
    ejazz75

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Affecter la valeur du retour d'une fonction javascript � une variable php
    Par walking dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 06/05/2012, 06h55
  2. R�ponses: 4
    Dernier message: 06/09/2010, 15h37
  3. R�ponses: 4
    Dernier message: 07/04/2007, 20h02
  4. Envoyer une valeur g�ner�e par une fonction javascript
    Par karimphp dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 10/12/2006, 18h44
  5. comment recuperer une valeur retournée d'une fonction javascript?
    Par megapacman dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 13/06/2006, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo