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

jQuery Discussion :

Addition de valeurs


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2017
    Messages : 12
    Par défaut Addition de valeurs
    Bonjour,

    J'ai un souci avec jQuery : je fais des calculs (qté * montant) et je récupère des sous-totaux que j'affiche correctement. Mais je n'arrive pas à calculer et afficher le grand total de ces sous-totaux !
    Quelqu'un a t-il une idée ?
    Merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour et bienvenue sur DVP.

    Il va nous en falloir un peu plus, de code, pour pouvoir t'aider efficacement. Montre nous ce que tu as mis en place.

  3. #3
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2017
    Messages : 12
    Par défaut
    Bonjour,
    Je suis novice en jQuery et je patauge. Voici mon code pour les calculs de chaque élement (qté * prix) = sous-total. J'ai 12 sous-totaux possibles (mais pas forcément tous remplis suivant ce que souhaite le visiteur). Mes sous-totaux s'affichent mais je galère pour les additionner et avoir un total général. Voici ce que j'ai :

    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
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    // nécessite la bibliothèque JavaScript JQUERY !
    $(document).ready(function () {
      $('select[name=selection_1]').change(compute);
      function compute() {
        var a = $('input[name=input_9]').val() || 0;
        var b = $('select[name=selection_1]').val() || 0;
        var total = (a * b);
        $('input[name=hidden_2]').val(total.toFixed(2));
        $('span.price.total').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_2]').change(compute_1);
      function compute_1() {
        var c = $('input[name=input_10]').val() || 0;
        var d = $('select[name=selection_2]').val() || 0;
        var total = (c * d);
        $('input[name=hidden_3]').val(total.toFixed(2));
        $('span.price.total_1').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_3]').change(compute_2);
      function compute_2() {
        var e = $('input[name=input_11]').val() || 0;
        var f = $('select[name=selection_3]').val() || 0;
        var total = (e * f);
        $('input[name=hidden_4]').val(total.toFixed(2));
        $('span.price.total_2').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_4]').change(compute_3);
      function compute_3() {
        var g = $('input[name=input_12]').val() || 0;
        var h = $('select[name=selection_4]').val() || 0;
        var total = (g * h);
        $('input[name=hidden_5]').val(total.toFixed(2));
        $('span.price.total_3').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_5]').change(compute_4);
      function compute_4() {
        var i = $('input[name=input_13]').val() || 0;
        var j = $('select[name=selection_5]').val() || 0;
        var total = (i * j);
        $('input[name=hidden_6]').val(total.toFixed(2));
        $('span.price.total_4').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_6]').change(compute_5);
      function compute_5() {
        var k = $('input[name=input_14]').val() || 0;
        var l = $('select[name=selection_6]').val() || 0;
        var total = (k * l);
        $('input[name=hidden_7]').val(total.toFixed(2));
        $('span.price.total_5').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_7]').change(compute_6);
      function compute_6() {
        var m = $('input[name=input_15]').val() || 0;
        var n = $('select[name=selection_7]').val() || 0;
        var total = (m * n);
        $('input[name=hidden_8]').val(total.toFixed(2));
        $('span.price.total_6').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_8]').change(compute_7);
      function compute_7() {
        var p = $('input[name=input_16]').val() || 0;
        var q = $('select[name=selection_8]').val() || 0;
        var total = (p * q);
        $('input[name=hidden_9]').val(total.toFixed(2));
        $('span.price.total_7').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_9').change(compute_8);
      function compute_8() {
        var r = $('input[name=input_17]').val() || 0;
        var s = $('select[name=selection_9]').val() || 0;
        var total = (r * s);
        $('input[name=hidden_10]').val(total.toFixed(2));
        $('span.price.total_8').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_10').change(compute_9);
      function compute_9() {
        var t = $('input[name=input_18]').val() || 0;
        var u = $('select[name=selection_10]').val() || 0;
        var total = (t * u);
        $('input[name=hidden_11]').val(total.toFixed(2));
        $('span.price.total_9').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_11').change(compute_10);
      function compute_10() {
        var v = $('input[name=input_19]').val() || 0;
        var w = $('select[name=selection_11]').val() || 0;
        var total = (v * w);
        $('input[name=hidden_12]').val(total.toFixed(2));
        $('span.price.total_10').text(total.toFixed(2) + ' €');
      }
    })
    $(document).ready(function () {
      $('select[name=selection_12').change(compute_11);
      function compute_11() {
        var x = $('input[name=input_20]').val() || 0;
        var y = $('select[name=selection_12]').val() || 0;
        var total = (x * y);
        $('input[name=hidden_13]').val(total.toFixed(2));
        $('span.price.total_11').text(total.toFixed(2) + ' €');
      }
    })

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Tout d'abord il n'est pas nécessaire de mettre plusieurs $(document).ready(function (), un seul qui englobe la totalité est suffisant.

    Pour récupérer tous les sous-totaux, qui visiblement ont un nom de class qui contient total, tu peux utiliser un sélecteur « sélectif »
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var elemSousTotaux = $("[class*='total']");
    il suffit ensuite de boucler sur cette liste et d'en faire le « grand » total.

    Category: Selectors
    Attribute Contains Selector [name*=”value”]

  5. #5
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2017
    Messages : 12
    Par défaut
    merci,
    Je vais essayer cela. Dois-je laisser toutes mes fonctions compute ? J'ai remarqué que si je n'en laisse qu'une cela ralentit le script.

  6. #6
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2017
    Messages : 12
    Par défaut
    J'ai éliminé tous mes document ready et je n'en ai gardé qu'un. Mes sous-totaux s'affichent bien, par contre je ne vois pas où et comment intégrer mon sélecteur sélectif et faire la bloucle pour calculer le montant global.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Addition selon valeur cellule adjacente
    Par Labinouse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/10/2011, 09h27
  2. [AC-2007] probleme d'addition sur valeur de recordset
    Par tibiurs dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/05/2009, 17h08
  3. Pb addition avec valeur NULL
    Par major2 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/03/2006, 15h33
  4. [VBA-E] Addition des valeurs des textbox
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 15/02/2006, 14h49
  5. [JSP] addition deux valeurs en sortie d'une jsp
    Par LESOLEIL dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 08/06/2005, 11h13

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