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 :

[DOM] calcul valeurs cumulées


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut [DOM] calcul valeurs cumulées
    Bonjour à tous,

    Voilà, j'ai un formulaire qui ressemble grosso modo à ca :

    <INPUT TYPE='text' NAME='prix[1]' value='9'>
    <INPUT TYPE='text' NAME='prix[2]' value='50'>
    ...
    <INPUT TYPE='text' NAME='prix[30]' value='22'>

    Dans 'prix[$i], $i n'étant pas une valeur fixe je peux aussi bien avoir en fin de chaine prix[50] ou prix[250].
    J'espère être assez claire...gloups.

    Comment faire pour avoir une formule qui calcule ainsi l'ensemble de ces valeurs (9+50+...+22) sensible au onchange par exemple si l'on en modifie une ?

    Pardon pour mon ignorance js...

    Merci à vous

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    il faut tout d'abord créer une fonction qui calcul la somme
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function somme()
    { var total=0;
    for(var i ;i<nbreOfValeur;i++)
    {total=total+Integer.parseInt(NomFormulaire.Prix[i]);
    }
    return total
     
    }
    normalement il faut afficher le total quelque part donc tu doit créer une td ou tr ou ... avec un id
    exemple
    <td id="lasomme">la somme doit apparaitre ici</td>
    puis tu dois créer une fonction qui modifier le total à chaque modification dans le formulaire (c'est le DHTML) innerHTML permet d modifier le contenu du td dynamiquement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function afficherSomme(){
    
    document.getElementById("lasomme").innerHTML=somme();
    }
    en fin tu doit appeller la fonction afficherSomme() à chaque modification de tes champs
    PS: je n'ai pas tester ce code
    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Met tout tes INPUT de prix entre deux balise, puis dans ton script utilise le DOM pour boucler sur les enfants (les input) de ta balise.
    http://javascript.developpez.com/faq/?page=DOM

  4. #4
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Mille mercis pour votre aide.

    je vais potasser ca.

    Youpiii

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Pardon, je dois être un boulet, j'essaye dans tous les sens.
    Un script de base du style :

    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
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/JavaScript">
    function somme()
    { var total=0;
    for(var $i ;$i<3;$i++)
    {total=total+Integer.parseInt(bdc.prix[$i]);
    }
    return total
    }
    function afficherSomme(){
     
    document.getElementById("lasomme").innerHTML=somme();
    }
    </SCRIPT>
    </HEAD>
     
     <BODY>
    <form name='bdc'>
    <TABLE>
    <TR><TD><INPUT TYPE='text' NAME='prix[1]' value='9' onchange='afficherSomme()'></TD></TR>
    <TR><TD><INPUT TYPE='text' NAME='prix[2]' value='3' onchange='afficherSomme()'></TD></TR>
    <TR><TD><INPUT TYPE='text' NAME='prix[3]' value='2' onchange='afficherSomme()'></TD></TR>
    <TR><td id="lasomme">la somme doit apparaitre ici</TD></TR>
    </TABLE>
    </form>
    Ne donne rien
    Pardon...

  6. #6
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    essaye déja d'utilise une syntaxe plus correct ...




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['bdc'].elements['prix['+$i+']']
    mais tu te compliques vraiment avec un tel nommage ...

    eut suffit
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['bdc'].elements['prix'][$i]
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    pardon pour ma bétise ou au moins mon ignorance mais le souci demeure le même :
    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
     
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/JavaScript">
    function somme()
    { var total=0;
    for(var $i ;$i<3;$i++)
    {total=total+Integer.parseInt(document.forms['bdc'].elements['prix'][$i]);
    }
    return total
    }
    function afficherSomme(){
     
    document.getElementById("lasomme").innerHTML=somme();
    }
    </SCRIPT>
    </HEAD>
     
     <BODY>
    <form name='bdc'>
    <TABLE>
    <TR><TD><INPUT TYPE='text' NAME='prix' value='9' onchange='afficherSomme()'></TD></TR>
    <TR><TD><INPUT TYPE='text' NAME='prix' value='3' onchange='afficherSomme()'></TD></TR>
    <TR><TD><INPUT TYPE='text' NAME='prix' value='2' onchange='afficherSomme()'></TD></TR>
    <TR><td id="lasomme">la somme</TD></TR>

  8. #8
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
     
      <head>
            <meta http-equiv="content-type" content="text/html; utf-8" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
     
            <title>Gérer les jours ouvrés</title>
     
     
    <SCRIPT TYPE="text/JavaScript">
    function somme()
    	{ var total=0;
    		for( i=0 ;i<3;i++){
    			total+=parseInt(document.getElementsByName('prix')[i].value);
    			}
    	return total;
    }
     
    function afficherSomme(){
    document.getElementById("lasomme").innerHTML='la somme ' + somme();
    }
    </SCRIPT>
     
    </HEAD>
     
    <BODY>
    <form name='bdc'>
    <TABLE>
    <TR><TD><INPUT TYPE='text' NAME='prix' value='9' onchange='afficherSomme()'></TD></TR>
    <TR><TD><INPUT TYPE='text' NAME='prix' value='3' onchange='afficherSomme()'></TD></TR>
    <TR><TD><INPUT TYPE='text' NAME='prix' value='2' onchange='afficherSomme()'></TD></TR>
    <TR><td id="lasomme">la somme</TD></TR>
    </html>
    Le scousi proveint je mense de l'utilisation d'un table dasn le form qui masque les inputs ...
    il n'est pas w3c correct de mettre un table dasn un form, la mise en page dasn un form se fait au moyen de fieldset ...

    P.S. pense aux balises code ... merci
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Wow....

    un immense merci pour ce travail maché.
    Super.

    Mea culpa pour les balise.

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

Discussions similaires

  1. Calcul d'une valeur cumulée
    Par poiuyt256 dans le forum VBA Access
    Réponses: 1
    Dernier message: 28/01/2009, 22h08
  2. [XI]calcul de cumul depuis une date
    Par lamyae_84 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 04/05/2007, 23h20
  3. Réponses: 2
    Dernier message: 13/02/2007, 18h02
  4. calcule de cumul
    Par youcef81 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/10/2006, 13h31
  5. calcul du cumul ds un formulaire access
    Par fefiche dans le forum Access
    Réponses: 5
    Dernier message: 06/06/2006, 12h48

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