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 :

calculer en javascript


Sujet :

JavaScript

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    bon j'ai enfin le rendu souhaité, par contre j'ai du virer mon foreach et mettre chaque élément de l'array un à un! Mais j'ai finalement ceci (html généré):


    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
    <head>
    <script language="JavaScript">
    function calcul() {
    var total = 0;
     
    // Permet de ne pas declarer le nombre d'elements du formulaires
    var nb;
    nb = document.devis.coche.length;
    total = parseFloat(document.devis.prix_base.value);
     
    // Evalue toutes les cases cochees
    for( i = 0 ; i < nb ; i++ ) {
    if (document.devis.coche[i].checked) total = total + parseFloat(document.devis.coche[i].value);
    }	
     
     
     
    // Affiche le total de toutes les cases cochees
    document.devis.prix_total.value = total;
    }
    </script> 
     
     
    </head>
    <body>
    <form name="devis">
    <input type="hidden" name="prix_base" value="0">
    Table
    <input name="coche" type="checkbox" value= "25,35" onclick="calcul()"> 
     
    Chaise
    <input name="coche" type="checkbox" value= "15,26" onclick="calcul()"> <br/><br/>
     
    <input type="text" name="prix_total" value="0" size="8"> Prix TTC<br/><br/>
     
     
     
     
     
    <input type="reset" value="Effacer">
    </form>
     
    </body>
    Bon il me prend bien, en cochant la case, le premier value 25, enfin pour l'instant...
    Ca fait un pas de plus non?

  2. #22
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Très bien.
    Maintenant il reste à gérer le value:

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.devis.coche[i].value //donne 25,35

    Renseignez-vous peut-être sur la méthode split();, afin de récupérer les deux valeurs séparément, et donc de les traiter séparément.

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Re!!

    alors j'ai vu dans la doc que split était obsolète j'ai donc opte pour explode() que j'ai découvert, c'est puissant ca ! Je savais pas qu'on pouvait transformer une chaine en tableau, qui plus est aussi facilement enfin a supposer que j'ai manier la chose correctement...

    Alors par contre la ou je bloque c'est pour le traitement js pour traiter les valeurs séparément justement!

  4. #24
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Après votre explode, vous avez bien un tableau de deux "cases", on va dire. 25 et 35.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var mon_tableau = ... //explode
     
    for( i = 0 ; i < nb ; i++ ) {
     
       if (document.devis.coche[i].checked)
       {
           document.getElementById("prix_total"+i).value = parseFloat(document.getElementById("prix_total"+i).value) + parseFloat(mon_tableau[i]);
       }
    }

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Haa mais ca sous entendait la creation d'un tableau en javascript?? parce que la je declarais un explode avant chaque input en php!!

  6. #26
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    De fait. Vu qu'explode n'existe pas en Javascript de base.
    Il serait temps que je dorme un peu...
    Je parlais effectivement d'une gestion Javascript du value, lors de sa récupération et non lors de sa création en PhP.

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2010
    Messages : 19
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par maestro982 Voir le message
    alors j'ai vu dans la doc que split était obsolète j'ai donc opte pour explode() que j'ai découvert, c'est puissant ca !
    Dans quelle doc avez-vous vu que split était obsolète ? String.prototype.split (separator, limit) est toujours à la section 15.5.4.14
    d'ECMA-262 dans sa version 5, et c'était déjà le cas dans la version 3.

    En revanche, je ne connais pas explode. Qu'est-ce ?

  8. #28
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    explode n'existe pas à ma connaissance en javascript ...
    il doit s'agir de php là non ?

    à moins de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String.prototype.explode=function(){
    return this.split(arguments[0])}

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Oui en effet je parlais de la doc php puisque je partais du principe que j'attribuais mes valeurs en php.
    Mais split est toujours utilise on dirait enfin j'en trouve dans les tutos js! Mais moi et le js.... donc la je bosse la chose!

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    bon j'ai une question de debutant là svp!!

    J'ai donc déclaré un tableau en javascript que j'essaie de récupérer dans le value de mon input. Le problème c'est que je ne sais pas comment faire là! a moins que ca ne soit pas comme php en mettant seulement des balises...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="coche" type="checkbox" value= "?????"  onclick="calcul()">
    Comme ca vous pouvez mesurer mon niveau remarquez!
    Désolé de vous embêter avec une question comme celle la!

  11. #31
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Non, non. Revenez en arrière. Vous aviez vos input bien remplis avec comme value "25,35". Ca c'est parfait. C'est dans la fonction calcul que vous devez faire votre split. Regarder mon dernier bout de code et là où j'avais mis:

    ben vous faites un split.

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Oui mais dans "var mon_tableau" je declare une chaine avec split pour la scinder en tableau? mais je fais quoi de l'array php que j'ai crée juste avant mon input dans la partie body? Je peux le laisser en php??? parce que le "25,35" a ete obtenue en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <body>
    <form name="devis">
    <input type="hidden" name="prix_base" value="0">
    Table
    <?php
    $table= "25,35";
    $fourni = explode(",", $table);
    ?>
     
    <input name="coche" type="checkbox" value= "<?php echo $fourni[0];echo ','; echo $fourni[1]?>" onclick="calcul()">
    sinon je peux essayer de refaire le formulaire en javascript vous voyez???
    enfin si je peux m'en passer je serai tout content ! merciii!

  13. #33
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    bon finalement ma remarque etait un peu bete, autant taper les éléments de mon array directement dans le value! Bref j'arrive désormais a ca sachant que j'ai affiché les deux tableau dans la partie head puisque j'ai deux produits...



    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
    <head>
    <script language="JavaScript">
    function calcul() {
    var total = 0;
    var mon_tableauchaise = "25,35".split(",");
     
    var mon_tableautable = "15,56".split(",");
     
     
    var nb;
    nb = document.devis.coche.length;
    total = parseFloat(document.devis.prix_base.value);
     
    // Evalue toutes les cases cochees
    for( i = 0 ; i < nb ; i++ ) {
    if (document.devis.coche[i].checked) document.getElementById("prix_total"+i).value = parseFloat(document.getElementById("prix_total"+i).value) + parseFloat(document.devis.coche[i].value);
    }	
     
     
     
    // Affiche le total de toutes les cases cochees
    document.devis.prix_total.value = total;
    }
    </script> 
     
     
    </head>
    <body>
     
    <form name="devis">
    <input type="hidden" name="prix_base" value="0">
    Table
     
    <input name="coche" type="checkbox" value= "25,35"  onclick="calcul()"> 
     
    Chaise
     
    <input name="coche" type="checkbox" value= "15,56" onclick="calcul()"> <br/><br/>
     
    <input type="text" id="prix_total0" name="prix_total0" value="0" size="8"> Prix TTC<br/><br/>
    <input type="text" id="prix_total1" name="prix_total1" value="0" size="8"> Prix TTC 2<br/><br/>
     
     
    <input type="reset" value="Effacer">
    </form>
     
    </body>
    C'est de ca qu'il s'agissait j'espere!

  14. #34
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Vous pourriez répéter l'énoncer car là je ne sais plus ce que l'on doit faire exactement.
    Et aussi bien relire le dernier code que je vous avais donné (oui oui même le bout de la ligne qui est caché à première vue ^^).

  15. #35
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Hahahahahha désolé j'ai du vous embrouiller l'esprit avec mes questions! J'ai du perdre le fil de vos conseils sans doute!

    alors voila : j'ai ce premier code qui me calcul le "prix total" des produits choisis en cochant des checkboxs.

    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
    <head>
    <script language="JavaScript">
    function calcul() {
    var total = 0;
     
    // Permet de ne pas declarer le nombre d'elements du formulaires
    var nb;
    nb = document.devis.coche.length;
    total = parseFloat(document.devis.prix_base.value);
     
    // Evalue toutes les cases cochees
    for( i = 0 ; i < nb ; i++ ) {
    if (document.devis.coche[i].checked) total = total + parseFloat(document.devis.coche[i].value);
    }	
     
     
     
    // Affiche le total de toutes les cases cochees
    document.devis.prix_total.value = total;
    }
    </script> 
    </head>
     
     
    <body>
    <form name="devis">
    <input type="hidden" name="prix_base" value="0">
    TABLE
    <?php
    $table= "25,35";
    $fourni = explode(",", $table);
     
    ?>
    <input name="coche" type="checkbox" value= "<?php echo $fourni[0];echo ','; echo $fourni[1]?>" onclick="calcul()"> 
     
    CHAISE
    <?php
    $chaise= "15,56";
    $fourni = explode(",", $chaise);
    ?>
    <input name="coche" type="checkbox" value= "<?php echo $fourni[0];echo ','; echo $fourni[1]?>" onclick="calcul()"> <br/><br/>
     
    <input type="text" name="prix_total" value="0" size="8"> Prix TTC<br/><br/>
     
     
    <input type="reset" value="Effacer">
    </form>
     
    </body>
    donc ici j'ai dans mes value le prix total qui est calculer en additionnant le premier prix de mes tableaux, ici $fourni[0];

    Cependant j'aimerais au même moment, calculer le total de $fourni[1] qui correspond à un prix d'un deuxième fournisseur
    donc pour faire court:
    en un clic:
    $fourni[0]+ $fourni[0] ect ect =
    <input type="text" name="prix_total" value="0" size="8"> Prix TTC<br/><br/>

    $fourni[1]+$fourni[1] ect ect=
    <input type="text" name="prix_total2" value="0" size="8"> Prix TTC<br/><br/>

    Don la difficulté, pour moi en tout cas , est de parvenir à calculer séparément les éléments d'un tableau qui se trouvent dans le même value !!

    Désolé de vous embeter avec ca mais ca fait un moment que j'essaie en vain...

  16. #36
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Essayez un peu ceci:

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for( i = 0 ; i < nb ; i++ ) {
     
       if (document.devis.coche[i].checked)
       {
           var mon_tableau = (document.devis.coche[i].value).split(",");
           document.getElementById("prix_total"+i).value = parseFloat(document.getElementById("prix_total"+i).value) + parseFloat(mon_tableau[i]);
       }
    }

    en rajoutant les id sur les deux champs html:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    <input type="text" id="prix_total1" name="prix_total1" value="0" size="8"> Prix TTC<br/><br/>
     <input type="text" id="prix_total2" name="prix_total2" value="0" size="8"> Prix TTC<br/><br/>

  17. #37
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Alors merci de la proposition, mais ca ne marche pas...la ca me prends en compte seulement le deuxieme prix du deuxieme produit, et a chaque fois que je reclic sur cette case ce additionne la meme valeur!! Mais ca progresse au moins il reconnait le deuxieme prix c'est une premiere!

    en fait je me disais qu'au premier clic deja il est censé m'afficher dans chaque input text, le premier et le deuxieme prix... donc si je clique sur "table" j'ai directement 25 et 35 qui devraient s'afficher dans chaque case!

  18. #38
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut Oups
    Effectivement je me suis emmelé les pinceaux avec les indices et les calculs.

    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
     
    <head>
    <script language="JavaScript">
    function calcul() {
    var total = 0;
    var mon_tableauchaise = "25,35".split(",");
     
    var mon_tableautable = "15,56".split(",");
     
     
    var nb;
    nb = document.devis.coche.length;
    document.getElementById("prix_total0").value = 0;
    document.getElementById("prix_total1").value = 0;
     
    for( i = 0 ; i < nb ; i++ ) {
     
       if (document.devis.coche[i].checked)
       {
           var mon_tableau = (document.devis.coche[i].value).split(",");
           document.getElementById("prix_total0").value = parseFloat(document.getElementById("prix_total0").value) + parseFloat(mon_tableau[0]);
           document.getElementById("prix_total1").value = parseFloat(document.getElementById("prix_total1").value) + parseFloat(mon_tableau[1]);
       }
    }
    }
    </script> 
     
     
    </head>
    <body>
     
    <form name="devis">
    <input type="hidden" name="prix_base" value="0">
    Table
     
    <input name="coche" type="checkbox" value= "25,35"  onclick="calcul()"> 
     
    Chaise
     
    <input name="coche" type="checkbox" value= "15,56" onclick="calcul()"> <br/><br/>
     
    <input type="text" id="prix_total0" name="prix_total0" value="0" size="8"> Prix TTC<br/><br/>
    <input type="text" id="prix_total1" name="prix_total1" value="0" size="8"> Prix TTC 2<br/><br/>
     
     
    <input type="reset" value="Effacer">
    </form>
     
    </body>
    Vérifiez l'id des input "prix_total", puis corrigez la fonction calcul. A savoir, on vide les totaux, puis on additionne par fournisseur.

  19. #39
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 82
    Points : 25
    Points
    25
    Par défaut
    Oulalala, je crois que c'est exactement ca et je crois que j'aurai jamais trouver sans vous!!!!! je dois absolument filer et je reviens faire un point avec vous quand j'aurai mis ca en forme, mais merciiiii 1000 fois à tout'!!

  20. #40
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut PS
    Il faut enlever ces lignes-ci qui ne servent plus à rien.

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var total = 0;
    var mon_tableauchaise = "25,35".split(",");
     
    var mon_tableautable = "15,56".split(",");

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. calcul automatique javascript
    Par groskanel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/05/2011, 17h29
  2. calcule en javascript
    Par amatou_allah dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/05/2009, 15h17
  3. [DOM] Tableau de calcul en javascript
    Par mariepierre dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 22/03/2009, 12h52
  4. Calcul en javascript
    Par tjoce dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/11/2007, 21h10
  5. petit calcul en Javascript
    Par Dream Time dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2007, 02h07

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