Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
896 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Afficher automatiquement la somme d'inputs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher automatiquement la somme d'inputs

n°2307068
petite fra​ise
Posté le 28-10-2017 à 16:12:56  profilanswer
 

Bonjour,
 
J'ai dans une page plusieurs formulaires semblables.
Chacun d'eux est constitué d'une série d'inputs dont le nombre est variable (dépendant d'une base de données mysql).
Les valeurs de ces inputs sont donc traitées comme un tableau.
 

Citation :

<input type="text" name="valeurs[]"  id="valeur_1" />
<input type="text" name="valeurs[]"  id="valeur_2" />
<input type="text" name="valeurs[]"  id="valeur_3" />
...


 
J'aimerais, pour chacun des formulaires présents sur la page, afficher la somme des valeurs contenues dans les inputs, et mettre à jour cette somme en cas de modification.
 
Je butte sur deux choses:

  • Comment gérer le nombre variable de valeurs?
  • Comment identifier le formulaire où la modification a été faite, sans affecter les autres ?


Etant débutant et souhaitant garder le site simple et robuste, j'ai tendance à éviter de solutions peut-être plus complexes comme jquery, est-ce possible ?
 
Merci beaucoup

mood
Publicité
Posté le 28-10-2017 à 16:12:56  profilanswer
 

n°2307073
petite fra​ise
Posté le 28-10-2017 à 17:59:52  profilanswer
 

J'ai avancé, mais ça ne marche encore que pour le premier formulaire de la page, sans que je ne sache encore pourquoi.

 

J'affiche la valeur calculée dans le champs "somme" du formulaire où une modification à été faite.

 

Au niveau de mes inputs valeurs[] :

 
Citation :

onblur="somme_valeurs(this)"

 

Et la fonction correspondante:

 
Citation :

 <script type="text/javascript">
    function somme_valeurs(x){
        var arr = document.getElementById(x.form.id).elements['valeurs[]'];
        var tot=0;
        for(var i=0;i<arr.length;i++){
            if(parseInt(arr[i].value))
                tot += parseInt(arr[i].value);
        }
        document.getElementById(x.form.id).elements['somme'].value = tot;
    }
    </script>



Message édité par petite fraise le 28-10-2017 à 18:46:03
n°2307080
petite fra​ise
Posté le 28-10-2017 à 19:44:43  profilanswer
 

Voici quelque chose qui marche :

Citation :


    function somme_valeurs(x){
        var formId = x.form.id;
        var arr = document.querySelectorAll('#' + formId + ' [name="valeurs[]"]');

 

       var tot=0;
        for(var i=0;i<arr.length;i++)
        {
            if(parseInt(arr[i].value))
                tot += parseInt(arr[i].value);
        }

 

       document.querySelector('#' + formId + ' [name="somme"]').value = tot;       
    }

 

N'hésitez pas à faire des remarques


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Afficher automatiquement la somme d'inputs

 

Sujets relatifs
[résolu]SQL afficher valeur d'une ligne en fonction d'une conditionVBA BO afficher le gestionnaire de rapport
[RÉGLÉ] [SQL] Jointure pour afficher un avatarINDEX est obligatoire pour afficher contenu de la table ?
Afficher périodiquement et aléatoirement une valeur d'un arraycomment copier automatiquement ID créé dans une 2ème table ?
Générer des slides automatiquement sur PPTAfficher une suite de nombre avec un char ou int ?
Exercice de la piscine 42: afficher l'alphabet[HTML/PHP/JS] Afficher x pages en alternances sur timer
Plus de sujets relatifs à : Afficher automatiquement la somme d'inputs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR