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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    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 Expert

    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
    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 éclairé
    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
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    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 éclairé
    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
    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 Expert

    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
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    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

+ 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