Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 20/12/2010, 15h40   #1
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

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

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
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 :
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 :
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>
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 16h41   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 802
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 802
Points : 35 807
Points : 35 807
A priori (si j'ai bien tout compris), il te suffit de créer et d'alimenter un tableau global :
Code :
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h02   #3
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

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

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
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
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h10   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 802
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 802
Points : 35 807
Points : 35 807
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h32   #5
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

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

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
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 ? = )
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h36   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 802
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 802
Points : 35 807
Points : 35 807
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h56   #7
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

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

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
D'accord je te remercie pour tes explications, je vais me pencher sur ton code histoire de voir comment tu as présenté la chose
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h36.


 
 
 
 
Partenaires

Hébergement Web