Additions en folie [Résolu]

Signaler
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008
-
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008
-
Bonjour à tous,
je me permets de faire appel à vous, car là je sèche.

Je cherche à faire la somme de nombreux input.
Pour être plus clair, j'ai quelque chose comme ça :


<hr />

 <form id="form1">

 
  
       
        <fieldset>
          <legend>Recettes</legend>
            

                    
            ----

              &amp;nbsp;,
              Saison &amp;eacute;coul&amp;eacute;e,
              Pr&amp;eacute;visionnel,
           
           
           
            ----

              Ah&amp;eacute;sions [1],
                                <label>
                  
                  </label>
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Participation aux activit&amp;eacute;s [1],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Participation sorties [3],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Manifestation/Spectacles [3],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Ventes [1],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Inter&amp;ecirc;ts de compte [1],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Divers,
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Subvention fonctionnement [1],
              &amp;nbsp;,
              &amp;nbsp;,
           
            ----

              Maurepas

                  
                      
                &amp;#8364;,
              Maurepas

                  
                      
                &amp;#8364;,
           
            ----

              Autre

                  
                      
                &amp;#8364;,
              Autre

                  
                      
                &amp;#8364;,
           
            ----

              Subvention formation [2],
              &amp;nbsp;,
           
            ----

              Maurepas

                  
                      
                &amp;#8364;,
              Maurepas

                  
                      
                &amp;#8364;,
           
            ----

              Autre

                  
                      
                &amp;#8364;,
              Autre

                  
                      
                &amp;#8364;,
           
            ----

              Subvention investissement [4],
              &amp;nbsp;,
              &amp;nbsp;,
           
            ----

              Maurepas

                  
                      
                &amp;#8364;,
              Maurepas

                  
                      
                &amp;#8364;,
           
            ----

              Autre

                  
                      
                &amp;#8364;,
              Autre

                  
                      
                &amp;#8364;,
           
            ----

              Subvention manifestation [3],
              &amp;nbsp;,
              &amp;nbsp;,
           
            ----

              Maurepas

                  
                      
                &amp;#8364;,
              Maurepas

                  
                      
                &amp;#8364;,
           
            ----

              Autre

                  
                      
                &amp;#8364;,
              Autre

                  
                      
                &amp;#8364;,
           
           
             <tfoot>
            ----

              TOTAL,
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
             </tfoot>
         

           
        </fieldset>
       
      

            

        
       <fieldset>
          <legend>R&amp;eacute;capitulatif</legend>
                        ----

              &amp;nbsp;,
              Saison &amp;eacute;coul&amp;eacute;e,
              Previsionnel,
           
            ----

              Fonctionnement [1],
                                <label>
                  
                  </label>
              &amp;#8364;,
                                <label>
                  
                  </label>
                &amp;#8364;,
           
            ----

              Manifestations [3],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Formations [2],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Investissement [4],
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              Autre,
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
            ----

              TOTAL,
                                
                &amp;#8364;,
                                
                &amp;#8364;,
           
         

           
        </fieldset>
       
     

</form>


Pour éviter d'avoir un script de 5 km de long,
je cherche une fonction "générale" de façon à avoir quelque chose comme ça dans l'input où je veux ma somme :

Voili voilou,
d'avance merci pour votre aide,

Farfadam

26 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
calcul est pas tout bon ?
    est-ce que tu remet à 0   la zone receptrice ?

    ...
   function additione_moi_les_champ()
    {  document.form1[additione_moi_les_champ.arguments[0]].value=0;
        for ( var n=1; n < additione_moi_les_champ.arguments.length; n++ )
        {    ...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
    ben... tu l'avais quasi fait....

</form>

<script type="text/javascript">
    function additione_moi_les_champ(ou)
    {  for ( var n=1; n < additione_moi_les_champ.arguments.length; n++ )
        {    document.form1[additione_moi_les_champ.arguments[0]].value =
                Number(document.form1[additione_moi_les_champ.arguments[0]].value)+
                Number(document.form1[additione_moi_les_champ.arguments[n]].value);   
        }
    }
</script>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
j'ai omis de préciser qu'il fallait mettre :
   <form id="form1"
            name="form1" >
et que, probablement, une remise à 0 avant les additions
   sera utile.
<hr />
                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Merci,
mais j'ai un petit soucis,

pour simplifier, j'ai essayé d'adapter le script de la façon suivante :

<script type="text/javascript">
    function additione_moi_les_champ(ou)
    {  for ( var n=1; n < additione_moi_les_champ.arguments.length; n++ )
        {    document.form1[additione_moi_les_champ.arguments[0]].value =
                Number(document.form1[additione_moi_les_champ.arguments[0]].value)+
                Number(document.form1[additione_moi_les_champ.arguments[n]].value);   
        }
    }
</script>

<form id="form1" name="form1">





 
 
 
 
 
   
    
     



    
</form>






...de façon à ce que le résultat s'affiche automatiquement dans le champ "total",
mais visiblement c'est pas comme ça qu'on doit faire parce que ça ne marche pas...
Une petite idée ?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
quelques petites imprécisions....
    function additione_moi_les_champ()   // paramètre inutile
    'additione_moi_les_champ (
               "total",      puisque la fonction attend le récepteur en 1er paramètre 
                                  on peut bien entendu faire autrement !
              "investissement",
              "fonctionnement",
              "ventes",
              "sorties");   '  />  attention aux " et ', sinon l'interpréteur s'y pomme
   

    mais tout ça sont des erreurs de syntaxe ! signalées !
FireFox
, regarder la "console d'erreurs"
Outils / Console d'erreurs
et mieux : télécharger mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
j'ai oublié de dire aussi que le calcul est déclenché par onkeyup....
    ce qui veut dire qu'il faut saisir un caractère dans total pour
       faire le calcul.... curieux, mais si cela te convient !
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

oui effectivement, quelques petites erreurs d'imprecision (erreurs de débutant )
bon alors maintenant ça marche mieux,
juste une dernière chose, comme tu le signal toi même, pour qu'un résultat s'affiche, on est obligé de rentrer quelque chose dans le champ "total", comment remedier à cela de manière à ce que le résultat s'affiche tout seul ?

Encore merci pour ta precieuse aide ;)

 
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>comment remedier à cela de manière à ce que le résultat s'affiche tout seul ?
    peut-être onkeyup sur les champs de saisie
       "investissement", "fonctionnement", "ventes",  "sorties"
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Comme ça ?

<form id="form1" name="form1">





 
 
 
 
 
   
     
          
</form>








 
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
à ton avis ?   tu as essayé ?
la fonction attend la zone réceptrice et les champs à additionner...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Heum,
là j'avoue que je suis un peu pommé...
pas si facile que ça le javaScript...

avec ça j'ai pas un affichage automatique mais le calcul est bon

<form id="form1" name="form1">







 
 ...  
   
     
           </form>





<form id="form1" name="form1">




avec ça j'ai un calcul automatique mais le calcul est pas bon du tout

 
 ...  
   
    
     



    
</form>





 
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>pas si facile que ça le javaScript.
    comme tous les langages
    pour javascript, "simple" pour débuter,
       il se complexifie ( et sérieusemeny ) quand on approndit.
    mais ici, pas un problème de langage à priori.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
d'ailleurs dès que tu seras au point,
    il faudrait éviter de répéter la même chose sur les champs de saisie....
    fait ça en dynamique par exemple, en POO aussi pourquoi pas....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Merci beaucoup pour toutes ces precieuses information (ça me retire une grosse épine du pied)
 Par contre dans ton dernier message tu parles de faire ça en "dynamique" ou en "POO"
qu'est ce que c'est que ça ?
Tu peux m'en dire un peu plus ?

 
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
quand, en informatique, on répète les choses plusieurs fois....
    ( c'est le cas ici avec les onkeyup sur les champs de saisie )
    "ce n'est pas normal". on doit pouvoir automatiser ça.
    la "Programmation Orientée Objet" n'est pas à mettre à
    toutes les sauces, systématiquement, enfin, ce n'est que
    mon avis, mais est "bien plus qu'utile"... souvent.
bref, en dynamique, tu devrais pouvoir faire :
    élément.onkeyup=function()   { du javascript }
    tant qu'à la POO, ce serait un peu long à expliquer ici,
       mais parfaitement adapté ( ici aussi )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

merci ;)

 
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Un petit souci,
désolé de revenir à la charge, mais je rencontre un petit problème,

soit 5 input :

Je cherche à avoir dans un autre input, la somme des A et dans un autre la somme des B

j'ai fait :

mais visiblement ça ne marche pas,
en dernier petit coup de main ?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
tu as changé le script originel ?
il y était prévu que le résultat allait dans le 1er paramètre.
    à priori, ici tu le donnes en dernier. pas trsè compliqué
    de modifier le js, mais encore faut-il le faire si tu tiens
    à que ce soit comme ça.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

heu oui pardons,
petite erreur :

soit 5 input :

Je cherche à avoir dans un autre input, la somme des A et dans un autre la somme des B

j'ai fait :
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

tu n'as pas 2 ??

l'interpréteur ne sait pas trop quoi faire....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]