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 sous-totaux


Sujet :

jQuery

  1. #1
    Membre habitué
    Homme Profil pro
    Responsable logistique
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable logistique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut Addition de sous-totaux
    Bonjour à tous,

    Le Javascript ne me réussis vraiment pas, je me suis arraché ce qui restait sur le caillou -)

    J'essaye de faire le total de 2 inputs, qui sont eux-mêmes des sous-totaux de checkbox et radiobuttons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	$('input:checkbox').change(function ()
    	{
    		  var total = 0;
    		  $('input:checkbox:checked').each(function(){
    		   total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    		  });   
    		  $("#total").val(total);
    	});


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	$('input[name=pole_compet]:radio').change(function ()
    	{
    		  var total2 = 0;		  
    		  $('input[name=pole_compet]:radio:checked').each(function(){
    		   total2 += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    		  });   
    		  $("#total2").val(total2);
    	});
    Les deux, total et total2 fonctionnent correctement.

    Mais je n'arrive pas à en faire le total dans un troisième input:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $('total3').change(function ()
    	{
    		var total=new Number(total.value);
    		var total2=new Number(total2.value);
    		var total3=Number(total+total2);
    		$("#total3").val(total3);
    	});

    Bien sûr, le plus simple aurait été de ne faire qu'une seule opération, mais je n'y suis jamais arrivé ...:
    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
    $('input:checkbox').change(function ()
    	{
    		  var total = 0;
    		  var total2 = 0;
    		  var total3 = 0;
    		  $('input:checkbox:checked').each(function(){
    		   total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    		  });
    		  $("#total").val(total);
    		  $('input[name=pole_compet]:radio:checked').each(function(){
    		   total2 += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    		  });
     
    		  $("#total2").val(total2);
    		  var total3=Number(total+total2);
    		  $("#total3").val(total3);
    	});
    Quelle est la meilleure voie à suivre, selon vous ?

    Vous l'aurez deviné, je suis novice, et une QUICHE en javascript,
    Merci d'avance, avec mes salutations.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    1. C'est du jQuery, pas le bon forum
    2. Il n'y a pas les codes HTML correspondant aux manipulations JS

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable logistique
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable logistique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut
    Oups, sorry pour le mauvais choix de forum, et Merci d'avoir réparé mon erreur.

    Les codes HTML:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h4><label for="total">Total : </label><input id="total"  name="subtotal" style="text-align:center;font-weight: bold;" size="10" value=<?php  echo $enreg["subtotal"];  ?>></h4><br><br>
     
    <h4><label for="total2">Total2 : </label><input id="total2"  name="subtotal2" style="text-align:center;font-weight: bold;" size="10" value=<?php  echo $enreg["subtotal2"];  ?>></h4><br><br>
     
    <h4><label for="total3">Total3 : </label><input id="total3" name="subtotal3" style="text-align:center;font-weight: bold;" size="10" value=<?php  echo $enreg["subtotal3"];  ?>></h4><br><br>

  4. #4
    Membre habitué
    Homme Profil pro
    Responsable logistique
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable logistique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut
    Comme il faut que ca marche, je continue de chercher à additionner les champs total et total2 pour afficher le résultat dans un champ total3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $( "input[name='subtotal3']" ).change(function ()
    	{
    	  //Déclaration des variables
    	  var total = document.f.total.value;
    	  var total2 = document.f.total2.value;
    	  // Opération
    	  result =  parseInt(total)  + parseInt(total2);
    	  // Test
    	  console.log(result);
    	  //Envoyer le résultat dans le champ('#total3')
    	  document.f.total3.value=result;
    	});
    Ne fonctionne pas

    J'ai essayé d'ajouter un nom de classe "sous_total" à mes 2 inputs à additionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $( ".sous_total" ).change(function ()
    	{
    		var total3 = 0;
    		  $( ".sous_total" ).each(function(){
    		  total3 += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    		  });   
    		  $("#total3").val(total3);
    	});
    Ne fonctionne pas non-plus....

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable logistique
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable logistique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut
    En fait, je m’aperçois que le dernier code fonctionne "à moitié" (en ajoutant un nom de classe "sous_total" à mes 2 inputs à additionner),...

    En effet, une modification "manuelle" des 2 champs total et total2 interagit correctement avec total3 ....
    Mais pas de calcul "automatique" induit par une modification des checkbox, ARGHHH !

    Ne dois plus être très loin, non ? -)

  6. #6
    Membre habitué
    Homme Profil pro
    Responsable logistique
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable logistique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut
    Bon...,
    Finalement...,

    Ai découvert le sélecteur ['nom*="valeur"'] (--->Éléments qui possèdent un attribut nom qui contient (partiellement ou totalement) la valeur spécifiée) ....

    ...Qui m'a permis ne faire qu'un seul calcul, sur un seul champ, en ajoutant simplement un attribut commun aux noms des champs concernés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	$('input[name*="choix_"]',).change(function ()
    	{
    		  var total = 0;		  
    		  $('input[name*="choix_"]:checked').each(function(){
    		   total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
    		  });   
    		  $("#total").val(total);
    	});
    Impec !

    Désolé donc de l'intrusion sur le Forum, et du monologue -)

    Bien Cordiales Salutations -)

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

Discussions similaires

  1. [VBA-E] Sous-totaux multiples
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/07/2006, 21h28
  2. [forms 6i] calculs de sous-totaux
    Par Magnus dans le forum Forms
    Réponses: 4
    Dernier message: 31/03/2006, 10h13
  3. Sous totaux par catégorie d'une colonne
    Par Benjamin78 dans le forum Sybase
    Réponses: 2
    Dernier message: 22/03/2006, 09h35
  4. [MySQL] Comment faire des sous-totaux ?
    Par renaud26 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/02/2006, 15h56
  5. [CR VB.NET] Sous totaux et en tête de groupe
    Par peyote dans le forum SDK
    Réponses: 1
    Dernier message: 05/12/2005, 22h40

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