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 :

Conversion de devises


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut Conversion de devises
    Bonjour,
    J'ai ce code
    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
     
    <script type="text/javascript">
    <!--
    function convertMoney(){
     getamount(valeur);
     getTTC();
    }
     
    function getamount(){
         var devise = document.getElementById('devise').options[document.getElementById('devise').selectedIndex].value;
         var ht = document.getElementById("prixht").value;
         var tva = document.getElementById('tva').options[document.getElementById('tva').selectedIndex].text;
         document.getElementById("prixttc").value = ht + (ht*tva/100) +' '+devise;
    }	
     
    function getTTC(){
         var devise = document.getElementById('devise').options[document.getElementById('devise').selectedIndex].value;
         var ht = document.getElementById("prixht").value;
         var tva = document.getElementById('tva').options[document.getElementById('tva').selectedIndex].text;
         document.getElementById("prixttc").value = ht + (ht*tva/100) +' '+devise;
    }	
    // -->
    </script>
     
    <form action="">
    <label>Prix HT</label><input type="text" name="prixht" id="prixht" onblur="getamount();" /><br />
    <label>TVA</label><select name="tva" id="tva" onchange="getTTC();">
    <option value="19.6">19.6</option>
    <option value="5.5">5.5</option>
    </select><br />
    <label>Prix TTC</label><input type="text" name="prixttc" id="prixttc" readonly="readonly" />
    <select name="devise" id="devise" onchange="convertMoney();">
    <option value="1.00">Euro</option>
    <option value="1.31524">Dollar</option>
    <option value="0.836586">Livre</option>
    </select>
    </form>
    1. Je souhaite en rentrant un prix HT, que le prix TTC soit calculé et affiché automatique dans le champ prixttc qui est en readonly. Ce TTC est calculé par defaut avec la devise par defaut au chargement de la page (€) et la tva par defaut 19.6.

    2. En changeant de TVA que le TTC soit reculculé et affiché.

    3. En changeant de devise que le HT soit recalculé et affiché dans le champs approprié ainsi que TTC.

    Meilleures salutations.

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par okoweb Voir le message
    1. Je souhaite ....
    Oui, et ?
    Quel est le problème avec ton code actuel ?

    A priori que tu tentes de faire des calculs sur des chaînes de caractères ?
    (les .value sont des string)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parseFloat(un_element.value, 10)
    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Oui, et ?
    Quel est le problème avec ton code actuel ?
    En changeant de devise, je voudrai que le prixht soit converti et aussi prixttc en fonction de la devise choisie.
    Citation Envoyé par E.Bzz Voir le message
    A priori que tu tentes de faire des calculs sur des chaînes de caractères ?
    (les .value sont des string)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parseFloat(un_element.value, 10)
    A+
    Je ne savais pas, merci...

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Bonjour Oko,
    quelques remarques.
    - J'ai la farouche impression que tes deux fonctions getTTC() et getamount() font la même chose.

    - As-tu envisagé onkeyup à la place de onchange sur ton <input> ?

    - Au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('machin').options[document.getElementById('machin')].value
    ceci est à la fois plus lisible et plus efficace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('machin').value
    Voilà pour le calcul des TTC. Pour les devises, on verra après. Tiens-nous au courant

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par Watilin Voir le message
    Bonjour Oko,
    quelques remarques.
    - J'ai la farouche impression que tes deux fonctions getTTC() et getamount() font la même chose.
    Oui car leur role est de prendre les données ca et là et recalculer le TTC, ...
    Citation Envoyé par Watilin Voir le message
    - As-tu envisagé onkeyup à la place de onchange sur ton <input> ?
    Okay pour onkeyup
    Citation Envoyé par Watilin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('machin').value
    Ce bazar ne marche pas pour les select, on fait plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //pour la valeur
    document.getElementById('machin').options[document.getElementById('machin')].value;
    //pour le texte
    document.getElementById('machin').options[document.getElementById('machin')].text;

  6. #6
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par okoweb Voir le message
    Ce bazar ne marche pas pour les select
    Si !

    As-tu testé ?
    Sur quel navigateur ?

    Sinon
    Je ne savais pas, merci...
    Je n'avais pas répondu pour faire joli ou pour passer le temps

    C'est la réponse à ta question de départ.

    As-tu seulement essayé quelque chose ?

    A+

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Citation Envoyé par okoweb Voir le message
    Ce bazar ne marche pas pour les select, on fait plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //pour la valeur
    document.getElementById('machin').options[document.getElementById('machin')].value;
    //pour le texte
    document.getElementById('machin').options[document.getElementById('machin')].text;
    Il faut arrêter la drogue
    select.value, contient la valeur du option sélectionné et ce depuis IE6
    mais encore il faudrait que tes options possèdent tous un value.

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par dukej Voir le message
    Il faut arrêter la drogue
    select.value, contient la valeur du option sélectionné et ce depuis IE6
    mais encore il faudrait que tes options possèdent tous un value.
    Je ne savais pas qu'on pouvait le faire ainsi. Il faudrait revoir les documentations à propos, la FAQ par exemple. J'ai pas essayé mais je reste prudent. Merci

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Citation Envoyé par okoweb Voir le message
    Je ne savais pas qu'on pouvait le faire ainsi. Il faudrait revoir les documentations à propos, la FAQ par exemple. J'ai pas essayé mais je reste prudent. Merci
    La faq a certains conseils qu'il vaut mieux éviter à tout prix.

Discussions similaires

  1. [AC-2010] Creation de requete pour conversion de Devise
    Par ThaHardy dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/06/2015, 11h42
  2. Réponses: 5
    Dernier message: 30/04/2015, 09h10
  3. faire une conversion devise
    Par Noahkhelian974 dans le forum Général Python
    Réponses: 1
    Dernier message: 17/04/2014, 09h21
  4. Conversion en Dollars suivant devise
    Par Akhlan dans le forum Conception
    Réponses: 2
    Dernier message: 02/08/2012, 17h12
  5. Conversion de devise
    Par LP-mpascolo dans le forum La taverne du Club : Humour et divers
    Réponses: 40
    Dernier message: 19/10/2007, 14h40

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