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 :

Fonction calcul et récupération du resultat dans une autre fonction


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut Fonction calcul et récupération du resultat dans une autre fonction
    Hello,

    Voilà, je tente actuellement d'ajouter quelques fonctions dans une page html servant de "boutique" simplifiée. Le site en question est assez ancien et très vaste, donc obligé de faire avec les moyens du bord, c'est à dire ajouter quelques fonctions JS.

    Mon but :
    - Afficher un sous total pour chaque article, selon la quantité voulue (choix de quantité via menu déroulant)
    - Afficher un total reprenant tous les sous totaux.

    Pour les sous totaux, ca roule, par contre, impossible de réussir à resortir un total complet au final. Il faudrait que je réussisse à récuperer les sous totaux pour les additioner.

    Voici les fonctions que j'utilise, les 5 premières (calculx) sont les sous totaux qui s'executent à chaque choix dans le menu déroulant, la dernière (total) est ma tentative de total qui doit s'executer lors du clic sur un bouton.

    Une idée de ce qui cloche ? Je pense que je m'y prend carrément mal pour la fonction du total :/

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <script language="javascript">
    function calcula(quantitea,prixa,totala)
    { 
    x=document.getElementById(quantitea);q=(1*x.value); 
    x=document.getElementById(prixa);p=7; 
     
    ra=(q*(0+p)); 
    x=document.getElementById(totala);x.value=ra; 
    }
     
    function calculb(quantiteb,prixb,totalb)
    { 
    x=document.getElementById(quantiteb);q=(1*x.value); 
    x=document.getElementById(prixb);p=7;
     
    rb=(q*(0+p));
    x=document.getElementById(totalb);x.value=rb; 
    }
     
    function calculc(quantitec,prixc,totalc)
    { 
    x=document.getElementById(quantitec);q=(1*x.value); 
    x=document.getElementById(prixc);p=28; 
    rc=(q*(0+p));
    x=document.getElementById(totalc);x.value=rc; 
    }
     
    function calculd(quantited,prixd,totald)
    { 
    x=document.getElementById(quantited);q=(1*x.value); 
    x=document.getElementById(prixd);p=10; 
    rd=(q*(0+p)); 
    x=document.getElementById(totald);x.value=rd; 
    }
     
    function calcule(quantitee,prixe,totale)
    { 
    x=document.getElementById(quantitee);q=(1*x.value); 
    x=document.getElementById(prixe);p=29; 
    re=(q*(0+p)); 
    x=document.getElementById(totale);x.value=re; 
    }
     
     
    function totalX(totala,totalb,totalc,totald,totale,totalz)
    { 
    x=document.getElementById(totala);x.value=ra; 
    x=document.getElementById(totalb);x.value=rb; 
    x=document.getElementById(totalc);x.value=rc; 
    x=document.getElementById(totald);x.value=rd; 
    x=document.getElementById(totale);x.value=re; 
    rz=(0+ra+rb+rc+rd+re); 
     
    x=document.getElementById(totalz);x.value=rz; 
    }
     
     
    </script>
    Et voici un apercu de l'html qu'il y a devant pour les sous totaux :

    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
    	<TD ALIGN=CENTER VALIGN=TOP><FONT SIZE=1>Indiquez la quantité souhaitée<BR><select name="quantitee" id="quantitee" onChange="calcule('quantitee','prixe','totale') ; ">
    <option value="0" selected></option>
    <option value="1">1 exemplaire</option>
    <option value="2">2 exemplaires</option>
    <option value="3">3 exemplaires</option>
    <option value="4">4 exemplaires</option>
    <option value="5">5 exemplaires</option>
    <option value="6">6 exemplaires</option>
    <option value="7">7 exemplaires</option>
    <option value="8">8 exemplaires</option>
    <option value="9">9 exemplaires</option>
    <option value="10">10 exemplaires</option>
    </select>
    <br>
    <input id="totale" type="text" name="totale" readonly="true" SIZE=8 MAXLENGTH=8> €</TD>		
    		<TD ALIGN=RIGHT VALIGN=TOP><FONT SIZE=2><B>€</B> 29,00</TD>
    Et voici le HTML concernant le total final (qui ne tourne pas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <B>Total de la commande :</B> <input id="totalz" type="text" name="totalz" readonly="true" SIZE=12 MAXLENGTH=12> €  
    <INPUT TYPE="button" VALUE="Calculer" onClick="totalX('totala','totalb','totalc','totald','totale','totalz')">

    Merci d'avance à ceux qui s'y pencheront !

  2. #2
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Salut,

    Ce ne serait pas plutôt quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function totalX(totala,totalb,totalc,totald,totale,totalz)
    { 
    var ra = document.getElementById(totala).value,
    rb = document.getElementById(totalb).value,
    rc = document.getElementById(totalc).value, 
    rd = document.getElementById(totald).value, 
    re = document.getElementById(totale).value; 
     
    x=document.getElementById(totalz).value = ra+rb+rc+rd+re; 
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    Haaaa y'a du mieux en tout cas, de cette facon il récupere bien els valeurs !!
    Merci !

    par contre, là il ne les additionne pas, il les ajoute l'une derriere l'autre :/
    Du genre j'ai des sous totaux 7+21+21+14
    Et il me ressort 7212114 comme résultat.

    Ai-je oublier une ligne pour convertir en numérique ?
    Ou faute de syntaxe pour qu'il calcul au lieu de simplement ajouter en suivant ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    il faut parser les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    rb = parseInt(document.getElementById(totalb).value)
    rc =  parseInt(document.getElementById(totalc).value)
    rd =  parseInt(document.getElementById(totald).value)
    re =  parseInt(document.getElementById(totale).value)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    Oki Doki, j'ai testé avec le parse comme tu le proposais, résultat : NaN

    j'ai ajouté le parse sur la dernière ligne au cas où : Plus aucun résultat.

    On s'approche du but je le sens mais c'est pas encore ca :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function totalX(totala,totalb,totalc,totald,totale,totalz)
    { 
    var ra = parseInt(document.getElementById(totala).value);
    rb = parseInt(document.getElementById(totalb).value);
    rc =  parseInt(document.getElementById(totalc).value);
    rd =  parseInt(document.getElementById(totald).value);
    re =  parseInt(document.getElementById(totale).value);
     
     
    x=parseInt(document.getElementById(totalz).value) = ra+rb+rc+rd+re; 
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    la derniere ligne aussi ne va pas la variable x ne sert a rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(totalz).value = ra+rb+rc+rd+re;

Discussions similaires

  1. [MySQL] resultat fonction dans une autre fonction
    Par cobra85 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/03/2015, 16h29
  2. Réponses: 11
    Dernier message: 03/03/2009, 01h03
  3. Comment détruire un widget créé dans une autre fonction?
    Par elwario91 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 08/04/2008, 12h02
  4. Réponses: 2
    Dernier message: 31/12/2007, 13h50
  5. Réponses: 5
    Dernier message: 29/06/2006, 17h23

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