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 :

Calculer un prix


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de Roromix
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 182
    Par défaut Calculer un prix
    Bonjour,

    Je suis en train de créé un site de personnalisation de produit mit à la vente en ligne. Toute la partie de personnalisation fonctionne mais quand les prix dans les champs avec un "+" devant changent, mon total ne change pas. En fait je débute en javascript et je ne sais pas comment faire.

    Voila une petite ébauche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script language="Javascript">
    function total() {
    total.value=Nombre(ini.value.+.c.value.+.l.value.+.e.value.+.i.value);
             return true;
    }
    </script>
    <b>Prix initial : <input type="text" size="5" name="ini" value="360,00" readonly>€<br>
    +<input type="text" size="5" name="c" value="00,00" onchange="total();">€<br>
    +<input type="text" size="5" name="l" value="00,00" onchange="total();">€<br>
    +<input type="text" size="5" name="e" value="00,00" onchange="total();">€<br>
    +<input type="text" size="5" name="i" value="00,00" onchange="total();">€<br>
    Total : <input type="text" size="5" name="total" value="360,00" readonly>€</b>
    Aidez-moi s'il vous plait !

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Alors première chose : Ne jamais nommer un champ avec le même nom qu'une fonction, il y a conflit.

    Ensuite toujours mettre les balises form quand on a à faire avec un formulaire.

    Alors voici une version qui fonctionne
    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
    <script language="Javascript">
    function calcul() {
    var nb1 = parseFloat(document.getElementById('ini').value);
    var nb2 = parseFloat(document.getElementById('c').value);
    var nb3 = parseFloat(document.getElementById('l').value);
    var nb4 = parseFloat(document.getElementById('e').value);
    var nb5 = parseFloat(document.getElementById('i').value);
    document.getElementById('total').value=nb1+nb2+nb3+nb4+nb5;
     
    }
    </script>
    <form name="formulaire">
    <b>Prix initial : <input type="text" size="5" id="ini" name="ini" value="360.00" readonly>€<br>
    +<input type="text" size="5" id="c" name="c" value="00.00" onchange="calcul()">€<br>
    +<input type="text" size="5" id="l" name="l" value="00.00" onchange="calcul()">€<br>
    +<input type="text" size="5" id="e" name="e" value="00.00" onchange="calcul()">€<br>
    +<input type="text" size="5" id="i" name="i" value="00.00" onchange="calcul()">€<br>
    Total : <input type="text" size="5" id="total" name="total" value="360.00" readonly>€</b></form>
    Attention aussi à la virgule qui est en javascript et tous autres langages caractérisé par le .
    Pour les nombres float toujours les parser avant un calcul car ils sont considérés comme des chaines dans un input

    une deuxième version qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script language="Javascript">
    function total2() {
    formu.total.value=parseFloat(formu.ini.value)+parseFloat(formu.c.value)+parseFloat(formu.l.value)+parseFloat(formu.e.value)+parseFloat(formu.i.value);
             return true;
    }
    </script>
    <form name="formu">
    <b>Prix initial : <input type="text" size="5" name="ini" value="360.00" readonly>€<br>
    +<input type="text" size="5" name="c" value="00.00" onchange="total2();">€<br>
    +<input type="text" size="5" name="l" value="00.00" onchange="total2();">€<br>
    +<input type="text" size="5" name="e" value="00.00" onchange="total2();">€<br>
    +<input type="text" size="5" name="i" value="00.00" onchange="total2();">€<br>
    Total : <input type="text" size="5" name="total" value="360.00" readonly>€</b></form>

  3. #3
    Membre confirmé Avatar de Roromix
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 182
    Par défaut
    et si je veux deux chiffres aprés la virgule ?

    Merci autrement, ca fonctionne

  4. #4
    Membre expérimenté Avatar de Seb19
    Homme Profil pro
    Concepteur SOA
    Inscrit en
    Septembre 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur SOA

    Informations forums :
    Inscription : Septembre 2005
    Messages : 217
    Par défaut
    Pour le nombre de décimal, tu peux utiliser toFixed() sur le total :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('total').value=(nb1+nb2+nb3+nb4+nb5).toFixed(2);

  5. #5
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    se méfier toutefois des arrondis sauvages de javascript ...
    Il y a un petit truc là dessus dans la faq javascript ...



    sinon une recherche
    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 !

Discussions similaires

  1. Calculer un prix net ayant plusieurs remise de même rang
    Par jsuisbloqué dans le forum Excel
    Réponses: 18
    Dernier message: 21/01/2008, 16h11
  2. Calcul automatique prix formulaire
    Par tidus5 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/11/2007, 15h10
  3. Fonction de calcul de prix TTC
    Par Shiva dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 22/08/2007, 19h11
  4. [MySQL] Aide envoie commande (calcul quantité + prix commande total)
    Par klue_ dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/05/2007, 11h49
  5. Calcul de prix unitaire moyen
    Par smail21 dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/11/2005, 12h10

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