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 :

calcul à partir de plusieur champs et affichage du resultat dans un champ


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut calcul à partir de plusieur champs et affichage du resultat dans un champ
    Bonjours

    Mon calcul entre plusieurs champs et affichage dans un champ du resultat ne fonctionne pas. Pouvez-me corriger le code ci dessous ?

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?php
    $qte_t = 400;
    ?>
    <HTML>
    <HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    var qte_b =1;
    function calcul_pr_var(pr_var) {
     var pr_var=math.round(parseFloat(f.pr_uni.value)-(parseFloat(f.pr_uni.value)-parseFloat(f.pr_max.value))/(qte_b-parsefloat(f.qte_max.value))+((parseFloat(f.pr_uni.value)-parseFloat(f.pr_max.value))/(qte_b-parseFloat(f.qte_max.value)*parseFloat(f.qte_t.value));
        if (isNaN(pr_var)) { 
            alert("Montant incorrect"); f.pr_var.focus();
        } else {
            f.pr_var.value=pr_var;
        }
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <form>
    <tr><th colspan="2"><b>Calcul Prix Variant</b></th></tr>
    <tr>
    <td><b>Prix unitaire</b></td>
    <td><input type="text" id="pr_uni" size="10" value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Prix maximum</b></td>
    <td><input type="text" id="pr_max" size="10" value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Quantité Maximum</b></td>
    <td><input type="text" id="qte_max" size="10"  value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Quantité totale</b></td>
    <td><input type="text" id="qte_t" size="10" value="<?php echo $qte_t;?>">€ HT</td>
    </tr>
    <tr>
    <td><b>Prix Variant</b></td>
    <td><INPUT type="button" value="&lt; Calculer > "></td>
    </tr>
    <tr>
    <td><b>Prix Variant</b></td>
    <td><input type="text" id="pr_var" size="10" onBlur="calcul_pr_var(this.form)" value="0">€ HT</td>
    </tr>
    </form>
    </BODY>
    </html>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    La fonction reçoit un paramètre incorrect.

    parsefloat s'écrit parseFloat
    math.round s'écrti Math.round

    Et l'appel de fonction serait peut-être mieux sur le bouton, avec 'onclick', non ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    Merci pour les fautes de frappes. ca ne fonctionne toujours pas. Le calcul ne se fait pas.
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?php
    $qte_t = 400;
    ?>
    <HTML>
    <HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    var qte_b =1;
    function calcul_pr_var(pr_var) {
     var pr_var=Math.round(parseFloat(f.pr_uni.value)-(parseFloat(f.pr_uni.value)-parseFloat(f.pr_max.value))/(qte_b-parseFloat(f.qte_max.value))+((parseFloat(f.pr_uni.value)-parseFloat(f.pr_max.value))/(qte_b-parseFloat(f.qte_max.value)*parseFloat(f.qte_t.value));
        if (isNaN(pr_var)) { 
            alert("Montant incorrect"); f.pr_var.focus();
        } else {
            f.pr_var.value=pr_var;
        }
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <form>
    <tr><th colspan="2"><b>Calcul Prix Variant</b></th></tr>
    <tr>
    <td><b>Prix unitaire</b></td>
    <td><input type="text" id="pr_uni" size="10" value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Prix maximum</b></td>
    <td><input type="text" id="pr_max" size="10" value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Quantité Maximum</b></td>
    <td><input type="text" id="qte_max" size="10"  value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Quantité totale</b></td>
    <td><input type="text" id="qte_t" size="10" value="<?php echo $qte_t;?>">€ HT</td>
    </tr>
    <tr>
    <td><b>Prix Variant</b></td>
    <td><INPUT type="button" value="&lt; Calculer > " onClick="calcul_pr_var(this.form)"></td>
    </tr>
    <tr>
    <td><b>Prix Variant</b></td>
    <td><input type="text" id="pr_var" size="10" onBlur="calcul_pr_var(this.form)" value="0">€ HT</td>
    </tr>
    </form>
    </BODY>
    </html>

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    pourquoi tu mets f.pr_var ?

    je verrai plutôt document.getElementById("pr_var")
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Pour simplifier j ai remplacé la longue formule mathématique par une plus courte ne prenant que deux champs.

    J'ai fait ta modification mais ca ne fonctionne toujours pas.

    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
    37
    38
    39
    40
    41
     
    <?php
    $qte_t = 400;
    ?>
    <HTML>
    <HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    var qte_b =1;
    function calcul_pr_var(pr_var) {
     var pr_var=Math.round(parseFloat(document.getElementById("pr_uni").value)-(parseFloat(document.getElementById("pr_uni").value)-qte_b));
        if (isNaN(pr_var)) { 
            alert("Montant incorrect"); document.getElementById("pr_var").focus();
        } else {
            document.getElementById("pr_var").value=pr_var;
        }
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <form>
    <tr><th colspan="2"><b>Calcul Prix Variant</b></th></tr>
    <tr>
    <td><b>Prix unitaire</b></td>
    <td><input type="text" id="pr_uni" size="10" value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Prix maximum</b></td>
    <td><input type="text" id="pr_max" size="10" value="0">€ HT</td>
    </tr>
     
    <tr>
    <td><b>Calcul</b></td>
    <td><INPUT type="button" value="&lt; Calculer > " onClick="&lt; Calculer > "></td>
    </tr>
    <tr>
    <td><b>Prix Variant</b></td>
    <td><input type="text" id="pr_var" size="10" onBlur="calcul_pr_var(this.form)" value="0">€ HT</td>
    </tr>
    </form>
    </BODY>
    </html>

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    ça ne peut pas fonctionner car, je me cite :

    "La fonction reçoit un paramètre incorrect."

  7. #7
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    pourquoi tu passes this.form... ?

    mets () comme argument, dans l'appel à la fonction et dans la déclaration de la fonction...


    @jeca je n'avais même pas fait gaffe
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Vous pouvez me poster le code avec la bonne modif car j y arrive pas la. Désolé je suis debutant en javascript.

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    gorgonite => this.form est correct dans l'appel de fonction.

    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function calcul_pr_var(pr_var)
    ne l'est pas. Si je m'en tiens au contenu de la fonction tel qu'il était dans le 1er message, ce devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function calcul_pr_var(f)
    carmen256 => Le moyen le plus sûr de ne pas rester un débutant est de fouiller et tester avec les pistes qui t'ont été donnée, pas de recevoir le code tout fait.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    J'ai fait ce tu as dis mais c'est pareil cela ne fonctionne pas

    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
    37
    38
    39
    40
    41
     
    <?php
    $qte_t = 400;
    ?>
    <HTML>
    <HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    var qte_b =1;
    function calcul_pr_var(f) {
     var pr_var=Math.round(parseFloat(f.pr_uni.value)-(parseFloat(f.pr_uni.value)-qte_b));
        if (isNaN(pr_var)) { 
            alert("Montant incorrect"); f.pr_var.focus();
        } else {
            f.pr_var.value=pr_var;
        }
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <form>
    <tr><th colspan="2"><b>Calcul Prix Variant</b></th></tr>
    <tr>
    <td><b>Prix unitaire</b></td>
    <td><input type="text" id="pr_uni" size="10" value="0">€ HT</td>
    </tr>
    <tr>
    <td><b>Prix maximum</b></td>
    <td><input type="text" id="pr_max" size="10" value="0">€ HT</td>
    </tr>
     
    <tr>
    <td><b>Calcul</b></td>
    <td><INPUT type="button" value="&lt; Calculer > " onClick="&lt; Calculer > "></td>
    </tr>
    <tr>
    <td><b>Prix Variant</b></td>
    <td><input type="text" id="pr_var" size="10" onBlur="calcul_pr_var(this.form)" value="0">€ HT</td>
    </tr>
    </form>
    </BODY>
    </html>

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Le bon code c"est celui la

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <SCRIPT LANGUAGE="JavaScript">
    function calcul_pr_var(f){var x1=f.pr.value;
      if (isNaN(x1)) {alert("Prix incorrect");
                      f.pr.value="";
                      f.total.value="";
                      f.pr.focus();
                      return;}
                      var x2=f.qte.value;
      if (isNaN(x2)) {alert("Quantité incorrect");
                      f.qte.value="";
                      f.total.value="";
                      f.qte.focus();
                      return;}
                      var x3=Math.round(parseFloat(x1)+parseFloat(x2));
                      f.total.value=x3;}
    </SCRIPT>
    </head>
     
    <body>
    <form>
    <table border="1">
    <tr><th colspan="2"><b>Calcul</b></th></tr>
    <tr>
    <td><b>Prix</b></td>
    <td><input type="text" name="pr" size="10" value="">€ HT</td>
    </tr>
    <tr>
    <td><b>qte</b></td>
    <td><input type="text" name="qte" size="10" value="">€ HT</td>
    </tr>
    <tr>
    <td><b>Calcul</b></td>
    <td><input type="button" value="Calculer" onclick="calcul_pr_var(this.form);"></td>
    </tr>
    <tr>
    <td><b>total</b></td>
    <td><input type="text" name="total" size="10" value="" readonly="readonly">€ HT</td>
    </tr>
    </table>
    </form>
    </body>
    </html>

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

Discussions similaires

  1. Calcul à partir de plusieurs contraintes
    Par boboss123 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 10/04/2015, 10h16
  2. [AC-2007] affichage de données dans un champ à partir d'un choix d'une liste déroulante
    Par Joebar-3 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 07/07/2009, 10h43
  3. Affichage de données dans les champs
    Par Vivian Pennel dans le forum Langage
    Réponses: 6
    Dernier message: 24/06/2008, 14h04
  4. Réponses: 7
    Dernier message: 23/03/2007, 00h11
  5. [MySQL] Problème d'affichage d'enregistrement dans un champs
    Par mosca_coroneja dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/04/2006, 11h19

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