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écuperer variable d'une fonction


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut Récuperer variable d'une fonction
    Bonsoir, je cherche à trouver comment récupérer la variable d'une fonction pour l'afficher directement sur ma page pour y créer un historique.

    Je fais actuellement une calculatrice javascript, je voudrai intégrer une sortei d'historique, à chaque pression de "=" l'opération en cours est affiché en bas dans un div historique.

    Hors je ne sais pas du tout comment m'y prendre ?

    Merci par avance !

    fonction :
    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
    function ajout(nb) //La fonction ajout récupere les valeurs et les ajoute dans le cadre d'opération
    {
        window.document.calculatrice.montant.value =  window.document.calculatrice.montant.value + nb;
    }
    function valider(entree){
        var validation="1234567890+-/*()[]";
        for (i=0;i<entree.length;i++){
            if (validation.indexOf(entree.charAt(i))<0 )
            {
                return false;
            }
            else
            {
                return true;
            }
        }
    }
    function resultat()// la fonction résultat utilise l'enssemble des données du cadre et effectue l'opération
    {
        var resu=0;
     
        if (valider(window.document.calculatrice.montant.value))
        {
            resu = eval(window.document.calculatrice.montant.value);
            window.document.calculatrice.montant.value = resu;
        }
        else//si la fonction valider ne retourne pas true, on affiche un message d'erreure sans rechargement pour laisser l'utilisateurs corriger son opération
        {
            document.getElementById("nombres").innerHTML="Il semble que votre opération comporte des erreures, veuillez vérifier votre syntaxe";
            return false;
        }
    }
    Ma page :

    Code html : 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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <!--
    To change this template, choose Tools | Templates
    and open the template in the editor.
    -->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>Calculatrice Javascript Simple</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <div id="body" style="background-color:#FFF799">
                <!-- appel du fichier JS-->
                <script type="text/javascript" src="function_calcu.js"></script>
                <!--premier formulaire password-->
                <center>
                    <div id="title" name="titre">
                        Calculatrice Simple<br />
                    </div>
                    <div id="tableau" name="tableau">
                        <table><!-- déclaration du tableau pour la mise en forme-->
     
                            <br>
     
                            <form name="calculatrice" action="" method="get"> <!--Déclaration du début du formulaire-->
                                <br>
                                <textarea style="WIDTH: 186px; HEIGHT: 54px; TEXT-ALIGN:right;" type="texte" name="montant" id="montant"></textarea><!-- zone de détails du calcul                                                                                                             et affichage de résultat-->
                                <br />
                                <tr>
                                    <td><input type="button" id="division" value="/" onclick="ajout('/')"/></td><!-- déclaration des boutons de la calculatrice, avec id et l'utilisation-->
                                    <td><input type="button" id="addition" value="+" onclick="ajout('+')"/></td> <!--    de la fonction ajout/ou resultat-->
                                    <td><input type="button" id="soustraction" value="-" onclick="ajout('-')"/></td>
                                    <td><input type="button" id="multiplication" value="*" onclick="ajout('*')"/></td>
     
                                    <td><input  type="reset" value="C"></td>
     
                                </tr>
                                <br />
     
                                <tr>
                                    <td><input type="button" id="parentheseg" value="(" onclick="ajout('(')"/></td><!-- ajout des options de calcul-->
                                    <td><input type="button" id="parenthesed" value=")" onclick="ajout(')')"/></td> <!--    de la fonction ajout/ou resultat-->
                                    <td><input type="button" id="crochetg" value="[" onclick="ajout('[')"/></td>
                                    <td><input type="button" id="crochetd" value="]" onclick="ajout(']')"/></td>
                                    <td><input type="button" id="modulo" value="%" onclick="ajout('%')"></td>
                                </tr>
                                <br />
     
     
                                <br />
                                <tr>
     
                                    <td><input type="button" id="zero" value="0" onclick="ajout('0')"/></td>
                                    <td><input type="button" id="un" value="1" onclick="ajout('1')"/></td>
                                    <td><input type="button" id="deux" value="2" onclick="ajout('2')"/></td>
                                    <td><input type="button" id="trois" value="3" onclick="ajout('3')"/></td>
                                    <td><input type="button" id="quatre" value="4" onclick="ajout('4')"/></td>
                                </tr>
     
                                <tr>
                                    <td><input type="button" id="cinq" value="5" onclick="ajout('5')"/></td>
                                    <td><input type="button" id="six" value="6" onclick="ajout('6')"/></td>
                                    <td><input type="button" id="sept" value="7" onclick="ajout('7')"/></td>
                                <br />
                                <td><input type="button" id="huit" value="8" onclick="ajout('8')"/></td>
                                <td><input type="button" id="neuf" value="9" onclick="ajout('9')"/></td>
                                </tr>
     
                        </table>
     
                        <input type="button" id="egal" value="=" onclick="resultat()" style="WIDTH: 185px;">
                        </form>
                    </div>
     
                    <span id="nombres" style="background-color:#FFD940"><!-- Si une erreure ce produit lors d'un calcul, on affiche un message d'erreure-->
                        Calculez via le menu ci dessus vos opérations.
                    </span>
                 </center>
            <div id="histo" name="historique" style="background-color:#CCC6AD">
    Historique des opérations :<br>
    <script language="javascript">
     
    </script>                                                                                                    
                                <br />
            </div>
        </body>
    </html>

  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 : 54
    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
    A priori (si j'ai bien tout compris), il te suffit de créer et d'alimenter un tableau global :
    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
    var historique = [];
    function resultat()// la fonction résultat utilise l'enssemble des données du cadre et effectue l'opération
    {
        var resu=0;
     
        if (valider(window.document.calculatrice.montant.value))
        {
            resu = eval(window.document.calculatrice.montant.value);
            window.document.calculatrice.montant.value = resu;
            historique.push(document.calculatrice.montant.value + ' = ' + resu);
            document.getElementById('divHistorique').innerHTML = historique.join('<br />');
        }
        else//si la fonction valider ne retourne pas true, on affiche un message d'erreure sans rechargement pour laisser l'utilisateurs corriger son opération
        {
            document.getElementById("nombres").innerHTML="Il semble que votre opération comporte des erreures, veuillez vérifier votre syntaxe";
            return false;
        }
    }
    Au passage, ta boucle for dans valider() est strictement inutile vu qu'à la première occurence, tu fais un return qui te fais donc sortir de la fonction (et donc de la boucle)
    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 chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut
    je te remercie, je vais tester ta solution de suite, petite question au passage,

    ton code : var historique = [];

    déclare un tableau ? car je ne connais pas cette déclaration

  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 : 54
    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
    Oui. Il existe en général deux façons de déclarer des variables.
    * La méthode constructeur, par exemple pour un tableau
    * La méthode littérale
    Il est généralement admis que la seconde est préférable à la première.
    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 chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Oui. Il existe en général deux façons de déclarer des variables.
    * La méthode constructeur, par exemple pour un tableau
    * La méthode littérale
    Il est généralement admis que la seconde est préférable à la première.
    Je connaissais la syntaxe constructeur, mais pas la littérale, la syn,taxe littérale est également utilisé lorsque l'on utilise i ++ par exemple i= i+1 ? = )

  6. #6
    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 : 54
    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
    Non, tu confonds là
    La syntaxe littérale sert à déclarer les variables :
    par exemple plutôt que
    correspond en revanche à une incrémentation, c'est-à-dire une affectation, ce n'est pas pareil
    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

Discussions similaires

  1. [Tableaux] Récuperer variable dans une fonction
    Par amarcil dans le forum Langage
    Réponses: 12
    Dernier message: 12/02/2006, 10h56
  2. Pb de variable dans une fonction :
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2005, 13h54
  3. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50
  4. retour de variable d'une fonction
    Par thunderblade dans le forum ASP
    Réponses: 4
    Dernier message: 28/04/2005, 13h27
  5. Réponses: 5
    Dernier message: 09/02/2005, 18h50

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