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 dans un formulaire


Sujet :

JavaScript

  1. #61
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    C'est bon pour la TVA sur le prix total, j'ai rajouté qt

    var tva = Math.round(pu * qt * parseFloat(obj.value, 10) * 100) / 100;
    Et ca fonctionne ca me calcul ce qu'il faut. Comment faire pour que l'alerte s'affiche dans la case Taux appliqué.

    <TH><input name="tva" type="text" value="" maxlength="15" SIZE="5" />
    Je pensais que cela suffisait.

  2. #62
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par chegerg Voir le message
    ME donne la TVA mais sur le prix unitaire hors moi je la veux sur le prix total HT.
    Ah oui, y avait une boulette, là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function calcul(obj, objp1, objp2, objprix)
    {
    var pu = parseFloat(objp1.value);
    var qt = parseFloat(objp2.value);
    
    var tva = Math.round((pu*qt) * parseFloat(obj.value, 10) * 100) / 100;
    alert(tva);
    var ttc = (pu*qt) + tva;
    
    objprix.value = ttc;
    }
    Citation Envoyé par chegerg Voir le message
    Et concernant le calcul form() je le charge a quel moment.
    Tu peux l'ajouter au onchange des input (après calcul() ) ou en faire un bouton ...

    A+

  3. #63
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    Alors petit recapepet:

    Code JS :

    unction calcul(obj, objp1, objp2, objprix)
    {
    var pu = parseFloat(objp1.value);
    var qt = parseFloat(objp2.value);

    var tva = Math.round((pu*qt) * parseFloat(obj.value, 10) * 100) / 100;
    alert(tva);
    var ttc = (pu*qt) + tva;

    objprix.value = ttc




    }

    function test_champ(champ) {
    expr_reg = /^\d*$/ ;
    // Ci-dessus : expression régulière qui match 0,1 ou plusieurs chiffres ;
    // de cette façon on vérifie que l'utilisateur entre bien un nombre entier
    if ( expr_reg.test(champ.value) ) {
    // c'est bien un nombre entier
    calcul_form() ;
    } else {
    // ce n'est pas un nombre entier
    alert ("Ce n'est par un nombre entier !") ;
    document.form1.elements[champ.name].value = "" ; // on efface la valeur entrée erronée
    calcul_form() ;
    }
    }

    function calcul_form() {
    // le with ci-dessous permet d'abréger "document.forms.form1.p1.value" en "p1.value"
    with (document.forms.form1) {

    p1.value = parseInt(q1.value, 10)* parseFloat(pu1.value, 10) ;
    p2.value = parseInt(q2.value, 10)* parseFloat(pu2.value, 10) ;
    //p3.value = q3.value * pu3.value ;
    total.value = p1.value *1 + p2.value *1 + p3.value *1 ;
    // Ai mis les *1 ci-dessus afin que les + fassent une somme arithmétique
    // et non pas une concaténation de chaînes de caractères
    }
    }

    function champ_verrouille(champ,valeur) {
    // Remarque : en HTML 4.0, il existe un attribut "read-only" pour la
    // balise <INPUT TYPE=text> qui interdira de modifier un champ
    // mais ce que je fais ci-dessous est beaucoup plus sûr !!!
    // alert ("Ce champ de peut pas être modifié !") ;
    document.form1.elements[champ.name].value = valeur ; // on remet "valeur" initiale dans champ
    }

    function soumettre_form() {
    if ( document.forms.form1.total.value == 0 ) {
    alert ("Vous n'avez rien commandé !\n => commande non soumise") ;
    return false ;
    } else {
    // Les 2 lignes ci-dessous devraient être activées pour réellement passer le form. à script CGI
    // document.form1.method = "POST" ;
    // document.form1.action = "http://dgrwww.epfl.ch/cgi-bin/uncgi/mail_form.sh?mailto=Jean-Daniel.Bonjour@epfl.ch" ;
    document.write ("<H3 ALIGN=center>Commande passée\n pour un montant de " +
    document.forms.form1.total.value + " Frs</H3>") ;
    document.close () ;
    return true ;
    }
    }

    // -->
    </SCRIPT>


    Code HTML

    </HEAD>
    <BODY BGCOLOR="white" >



    <table width="100%">
    <!--utilisation d'un tableau qui occupera toute la page-->
    <tr>
    <td>
    <table width="100%" align="center" border=1>
    <tr>
    <td align="center">
    VILLE DE DIVION<BR>
    1, rue Pasteur<BR>
    BP9<BR>
    Tel : 0321645570<BR>
    Fax : 0321645583<BR>
    Mel : contact@ville-divion.fr<BR>
    Mel : achatpublic@ville-divion.fr<BR>
    </td>


    <td align="center">
    <FORM NAME="form1">
    Nom du fournisseur :
    <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGth="20">
    <BR>
    Adresse du fournisseur :
    <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGTH="20">
    <BR>
    Ville :
    <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGTH="20">
    <BR>
    FAX :
    <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGTH="20">
    <BR>
    LIEU DE LIVRAISON
    <SELECT NAME="LIEU"
    <OPTION VALUE="st">Service technique
    <OPTION SELECTED VALUE="m">Mairie
    <OPTION VALUE="elc">Education Loisirs et Citoyenneté
    </SELECT>

    </td>
    <td align="center">

    <?php
    echo "Date du jour : ".date("d-m-Y")."<br>";
    //affiche la date du jour d'utilisation du serveur par le client
    ?>
    <BR>Action</BR>
    <INPUT TYPE="checkbox" NAME="Livraison"> Livraison
    <INPUT TYPE="checkbox" NAME="Retrait"> Retrait
    <INPUT TYPE="checkbox" NAME="Autre"> Autre
    <INPUT TYPE="checkbox" NAME="Transmission" CHECKED> Transmettre au fournisseur
    </td>
    <tr>
    <td colspan=4 align="center">

    Ne seront reconnus par le Ville de Divion que les services faits en exécution d’un bon de commande régulier dûment numéroté, visé et signé par le responsable achat
    </td>
    </tr>
    <TABLE width="100%" BORDER="1" CELLSPACING="0" BGCOLOR="#FFFFAA" >
    <TR BGCOLOR="#CCCCCC">
    <TH WIDTH=70%><B>Réference fournisseur et désignation</B>
    <TH >Prix unitaire HT
    <TH>Quantité
    <TH>Prix total HT
    <TH>TVA
    <TH>Taux appliqué
    <TH>Prix Total TTC
    </TR>
    <TH><INPUT TYPE="text" size="75">
    <TH><INPUT TYPE="text" id="pu1" NAME="pu1" SIZE="3" MAXLENGTH="4" >
    <TH><INPUT TYPE="text" id="q1" NAME="q1" SIZE="3" MAXLENGTH="4" onBlur="test_champ(this)">
    <TH><INPUT TYPE="text" id="p1" NAME="p1" SIZE="8" MAXLENGTH="4" >
    <TH><select name="valeur" onchange="calcul(this, document.getElementById('pu1'), document.getElementById('q1'), document.getElementById('objp1') )">
    <option value="#">TVA Appliquée</option>
    <option value="0.196">TVA à 19.6 %</option>
    <option value="0.055">TVA à 5.5 %</option>
    <TH><input name="tva" type="text" value="" maxlength="15" SIZE="5" />
    <TH><input name="ttc" type="text" value="" maxlength="15" SIZE="5"/>
    <TR BGCOLOR="#CCCCCC">
    <TH><INPUT TYPE="text" size="75">
    <TH><INPUT TYPE="text" id="pu2" NAME="pu2" SIZE="3" MAXLENGTH="4" >
    <TH><INPUT TYPE="text" id="q2" NAME="q2" SIZE="3" MAXLENGTH="4" onBlur="test_champ(this)">
    <TH><INPUT TYPE="text" id="p2" NAME="p2" SIZE="8" MAXLENGTH="4" >
    <TH><select name="valeur" onchange="calcul(this, document.getElementById('pu2'), document.getElementById('q2'), document.getElementById('objp2') )" onchange ="calcul_form()">
    <option value="#">TVA Appliquée</option>
    <option value="0.196">TVA à 19.6 %</option>
    <option value="0.055">TVA à 5.5 %</option>
    <TH><input name="tva" type="text" value="" maxlength="15" SIZE="5" />
    <TH><input name="ttc" type="text" value="" maxlength="15" SIZE="5"/>


    </BODY>

    Ceci est la totalité du code pour l'instant
    Avec ce code le calcul de tva ne s'inscrit pas dans mon formulaire mais l'alerte fonctionne.

    Je vais essayer de voir pour que cela s'inscrive dans le champs "Taux appliqué"

    MErci

  4. #64
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par chegerg Voir le message
    Avec ce code le calcul de tva ne s'inscrit pas dans mon formulaire
    Normal, tu ne l'avais pas demandé ....
    Citation Envoyé par chegerg Voir le message
    Je vais essayer de voir pour que cela s'inscrive dans le champs "Taux appliqué"
    Une piste : pour l'instant ce n'est pas un champ
    Si tu dois en mettre un, n'oublie pas l'id ...

    A+

  5. #65
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    L'id je le rajoute dans le INPUT ou dans la fonction, j'ai essayé ça mais ça ne fonctionnne pas :

    document.getElementById('tva') = Math.round((pu*qt) * parseFloat(obj.value, 10) * 100) / 100;
    avec

    <TH><input id="tva" type="text" value="" maxlength="15" SIZE="5" />
    Je vais me pencher la dessus......

    j'ai bien fait car ca fonctionne mais j'ai une erreur de type:

    Élément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C « document.getElementById() » à la place.

  6. #66
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    Toute compte fait ca ne fonctionne pas lorsque je fais pour le deuxième l'id n'est pas unique........

  7. #67
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Rends-le unique

  8. #68
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    Je ne peux pas vu que mon formulaire doit inscrire plusieurs fois la tva ( sur des article différents p1 p2 etc) pour chaque ligne de mon formulaire a moibs que je ne m'embrouille trop....

  9. #69
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par chegerg Voir le message
    Je ne peux pas vu que mon formulaire doit inscrire plusieurs fois la tva ( sur des article différents p1 p2 etc) pour chaque ligne de mon formulaire a moibs que je ne m'embrouille trop....
    Je penche pour la 2° possibilité ...

  10. #70
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    quel deuxième possibilité...

  11. #71
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    As tu essayé de le tester le formulaire en local ??? si ce n'est trop te demandé

  12. #72
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par chegerg Voir le message
    As tu essayé de le tester le formulaire en local ??? si ce n'est trop te demandé
    Au bout de 5 pages, et considérant que j'ai aussi du boulot de mon côté, oui, c'est trop

    Tu as déjà tous les éléments.

    Les cours (Javascript et HTML) seraient sûrement un bon complément à ta réflexion

    A toi de jouer, maintenant ...

    A+

  13. #73
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    Je ne vois pas du tout mais je m'accroche comme tu peux le voir

  14. #74
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    Alors si je fait :

    <TH><INPUT TYPE="text" size="75">
    <TH><INPUT TYPE="text" id="pu1" NAME="pu1" SIZE="3" MAXLENGTH="4" >
    <TH><INPUT TYPE="text" id="q1" NAME="q1" SIZE="3" MAXLENGTH="4" onBlur="test_champ(this)">
    <TH><INPUT TYPE="text" id="p1" NAME="p1" SIZE="8" MAXLENGTH="4" >
    <TH><select name="valeur" onchange="calcul(this, document.getElementById('pu1'), document.getElementById('q1'), document.getElementById('objp1') )" onchange ="calcul_form()">
    <option value="#">TVA Appliquée</option>
    <option value="0.196" >TVA à 19.6 %</option>
    <option value="0.055">TVA à 5.5 %</option>
    <TH><input name="tva"id="tva" type="text" value="" maxlength="15" SIZE="5" />
    <TH><input name="ttc" type="text" value="" maxlength="15" SIZE="5"/>
    <TR BGCOLOR="#CCCCCC">
    <TH><INPUT TYPE="text" size="75">
    <TH><INPUT TYPE="text" id="pu2" NAME="pu2" SIZE="3" MAXLENGTH="4" >
    <TH><INPUT TYPE="text" id="q2" NAME="q2" SIZE="3" MAXLENGTH="4" onBlur="test_champ(this)">
    <TH><INPUT TYPE="text" id="p2" NAME="p2" SIZE="8" MAXLENGTH="4" >
    <TH><select name="valeur" onchange="calcul(this, document.getElementById('pu2'), document.getElementById('q2'), document.getElementById('objp2') )" onchange ="calcul_form()">
    <option value="#">TVA Appliquée</option>
    <option value="0.196">TVA à 19.6 %</option>
    <option value="0.055">TVA à 5.5 %</option>
    <TH><input name="tva" id="tva1" type="text" value="" maxlength="15" SIZE="5" />
    <TH><input name="ttc" type="text" value="" maxlength="15" SIZE="5"/>
    Avec cette fonction :

    function calcul(obj, objp1, objp2, objprix)
    {
    var pu = parseFloat(objp1.value);
    var qt = parseFloat(objp2.value);

    document.getElementById('tva').value = Math.round((pu*qt) * parseFloat(obj.value, 10) * 100) / 100;
    document.getElementById('tva1').value = Math.round((pu*qt) * parseFloat(obj.value, 10) * 100) / 100;
    document.getElementById('ttc').value = (pu*qt) + tva;

    objprix.value = ttc

    ca ne fonctionne pas la valeur se met toujours dans la meme colonne, j'y suis presque ?????

  15. #75
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    Et si je rajoute un id au ttc cela m'affiche le prix TOTAL HT dans la case TTC, je pense qu'il y encore un souci de ce coté la.

  16. #76
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 77
    Par défaut
    Bon toujour la meme erreur, le résultat s'inscrit dans les deux cases du formulaire et non sur la ligne en question????

Discussions similaires

  1. Calcul dans un formulaire
    Par mikaloop dans le forum Access
    Réponses: 4
    Dernier message: 18/04/2006, 15h24
  2. disparition des calculs dans un formulaire
    Par OBIWAN64 dans le forum Access
    Réponses: 6
    Dernier message: 24/03/2006, 12h05
  3. problème de calcul dans un formulaire
    Par Bray02 dans le forum IHM
    Réponses: 1
    Dernier message: 07/12/2005, 11h45
  4. Calculs dans sous-Formulaire
    Par Bernjean dans le forum Access
    Réponses: 5
    Dernier message: 17/11/2005, 18h29
  5. Pb champ calcule dans sous formulaire
    Par Brial dans le forum Access
    Réponses: 6
    Dernier message: 12/11/2005, 18h33

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