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 :

Remplacer une requête sur une class par une valeur constante ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Remplacer une requête sur une class par une valeur constante ?
    Pour une fonction donnant la valeur journalière du yen :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function taux_yeneuro(data) {
        var yen_taux_jpy=data.query.results.rate[0].Rate;
     
        var taux_prix_yen = document.getElementsByClassName("taux_prix_yen");
        var taux_prix_converti_euro = document.getElementsByClassName("taux_prix_converti_euro");
     
    	for(var i = 0; i < taux_prix_yen.length; i++) {
    	    var taux_montant_en_yen=parseFloat(taux_prix_yen.item(i).innerHTML);
    	    var taux_montant_converti_en_euro = 1/yen_taux_jpy*taux_montant_en_yen;
    		taux_prix_converti_euro.item(i).innerHTML = " = "+taux_montant_converti_en_euro.toFixed(6)+" &euro;";
    	}
     
    };

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cours moyen  journalier du Yen : <span class="taux_prix_yen">1</span> &yen; <span class="taux_prix_converti_euro"></span>
     
    <script type="application/javascript" src="https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22EURJPY%22%2C%20%22JPYEUR%22)&amp;format=json&amp;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&amp;callback=taux_yeneuro"></script>

    Je voudrais intégrer la constante de 1 dans la feuille *.js, pour simplifier le code et n'avoir qu'une class sur le php:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <span class="taux_prix_converti_euro"></span>

    Je sais qu'il faudrait utiliser "const" mais je ne maitrise pas suffisamment la syntaxe javascript, pour arriver à simplifier le code.

    Est-ce possible de faire cette simplification ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    const fait partie de la norme ECMAScript 6, encore expérimentale, tu ne peux pas l'utiliser dès aujourd'hui sur tous les navigateurs.

    Généralement pour les constantes on se contente d'une convention de nommage des variables qui est de mettre le nom en majuscules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var TAUX_MONTANT_YEN = 1;

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci de ta réponse, toujours aussi pertinente SylvainPV !

    En fait je me rend compte qu'il serait plus simple dans cette usage d'enlever cette variable "taux_prix_yen"
    car elle est redondante dans mon usage :

    Mon idée serait plutôt de récupéré simplement "1/yen_taux_jpy" avec 6 chiffres après virgule :

    Quelque chose comme :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function taux_yeneuro(data) {
        var yen_taux_jpy=data.query.results.rate[0].Rate;
          var taux_prix_converti_euro = document.getElementsByClassName("taux_prix_converti_euro");
    	for(var i = 0; i < ""_""_"".length; i++) {
    	    var taux_montant_converti_en_euro = 1/yen_taux_jpy;
    		taux_prix_converti_euro.item(i).innerHTML = " = "+taux_montant_converti_en_euro.toFixed(6)+" &euro;";
    	}
    };

    Mais, c'est juste que je ne comprend pas quoi faire avec cette partie ?
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    for(var i = 0; i < taux_prix_yen.length; i++)
    Comme du coups je voudrais éliminer la variable taux_prix_yen

    Est-ce que ça pose soucis de vouloir obtenir la valeur ainsi ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 062
    Points : 44 618
    Points
    44 618
    Par défaut
    Bonjour,
    on trouve dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taux_prix_yen = document.getElementsByClassName("taux_prix_yen");
    ce qui fait que taux_prix_yen est une collection d'éléments HTML (nodeList).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(var i = 0; i < taux_prix_yen.length; i++)
    signifie simplement que tu parcours tous les éléments de cette nodeList.

    Mais, c'est juste que je ne comprend pas quoi faire avec cette partie ?
    Et comment comptes tu que l'on réponde à cette question ?

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    C'est vrai que j'ai mal posé ma question, merci de me le faire remarquer NoSmoking.

    S j'enlève là variable "taux_prix_yen" et sa collection d'éléments HTML du script, par quoi puis-je la remplacer ? dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(var i = 0; i <_?_ .length; i++)
    Puisque que dans ce que je voudrais obtenir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var taux_montant_converti_en_euro = 1/yen_taux_jpy;
    La variable "taux_prix_yen" = 1 n'apporte rien de plus au résultat
    puisque qu'au final je multiplie un résultat par "1" avec la variable "taux_prix_yen" (enfin à mon avis) ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par Lillie CHARLOTTE Voir le message
    La variable "taux_prix_yen" = 1 n'apporte rien de plus au résultat
    On est d'accord. C'est pour ça que je ne vois pas du tout où tu veux en venir, par rapport à la question initiale.

    Si tu ne vois pas quoi faire avec des bouts de ton code, ça veut dire que tu n'en comprends pas la logique. Peut-être faudrait-il mieux repartir de zéro ?

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Exact, toujours aussi pertinent SylvainPV, je m'éloigne effectivemeent de la question initial.

    Donc j'y reviens, pour :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function taux_yeneuro(data) {
        var yen_taux_jpy=data.query.results.rate[0].Rate;
        var TAUX_PRIX_YEN = 1 ;
        var taux_prix_converti_euro = document.getElementsByClassName("taux_prix_converti_euro");
    	for(var i = 0; i < TAUX_PRIX_YEN.length; i++) {
    	    var taux_montant_en_yen=parseFloat(TAUX_PRIX_YEN.innerHTML);
    	    var taux_montant_converti_en_euro = 1/yen_taux_jpy*taux_montant_en_yen;
    		taux_prix_converti_euro.item(i).innerHTML = " = "+taux_montant_converti_en_euro.toFixed(6)+" &euro;";
    	}
    };

    Qu'est-ce que je dois faire avec :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    var taux_montant_en_yen=parseFloat(TAUX_PRIX_YEN.item(i).innerHTML);

    Puisque je ne capture plus le 1 dans ma page HTML ?

    Si je modifie par
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    var TAUX_PRIX_YEN = 1;
    Du coups je n'obtient aucun résultat et je ne comprend pas trop bien pourquoi ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 720
    Points : 1 607
    Points
    1 607
    Par défaut
    jour

    l'index d'un collection commence a zero il faut donc mettre zero (0)

  9. #9
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Exemple :

    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
    function taux_yeneuro(data) {
        var yen_taux_jpy = data.query.results.rate[0].Rate,
            taux_prix_yen = document.getElementsByClassName("taux_prix_yen"),
            taux_prix_yen_length = taux_prix_yen.length,
            taux_prix_converti_euro = document.getElementsByClassName("taux_prix_converti_euro"),
    	    taux_montant_en_yen = 0,
            taux_montant_converti_en_euro = 0;
     
    	for ( var i = 0; i < taux_prix_yen_length; i++ ) {
    	    taux_montant_en_yen = parseFloat( taux_prix_yen.item(i).innerHTML );
    	    taux_montant_converti_en_euro = 1 / yen_taux_jpy * taux_montant_en_yen;
     
            if ( i == 0 ) {
                taux_prix_converti_euro.item(i).innerHTML = " = " + taux_montant_converti_en_euro.toFixed(6) + " &euro;";
            } else {
                taux_prix_converti_euro.item(i).innerHTML = " = " + taux_montant_converti_en_euro.toFixed(2) + " &euro;";
            }
    	}
     
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div>
        <p>Cours moyen journalier du Yen : <span class="taux_prix_yen">1</span> &yen; <span class="taux_prix_converti_euro"></span></p>
        <p>Valeur de <span class="taux_prix_yen">10</span> &yen; <span class="taux_prix_converti_euro"></span></p>
        <p>Valeur de <span class="taux_prix_yen">2758</span> &yen; <span class="taux_prix_converti_euro"></span></p>
        <p>Valeur de <span class="taux_prix_yen">3012194</span> &yen; <span class="taux_prix_converti_euro"></span></p>
    </div>
    <script type="application/javascript" src="https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22EURJPY%22%2C%20%22JPYEUR%22)&amp;format=json&amp;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&amp;callback=taux_yeneuro"></script>

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Étudiante à l'Inalco
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiante à l'Inalco
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    cette version parait idéal à 1ère vue.

    car elle me fait les 6 chiffres après la virgule pour la 1er valeur

    et à deux chiffres après la virgule pour les suivants, dans une même fonction !

    Par contre le défault que j'y vois c'est que les 6 chiffres après la virgules ne peuvent être utilisé que sur la 1er valeur soit:


    Cours moyen journalier du Yen : 100 ¥ = 0.732188 €

    Valeur de 1 ¥ = 0.01 €

    Valeur de 2758 ¥ = 20.19 €

    Valeur de 3012194 ¥ = 22054.91 €

    donc impossible de remettre le taux à 6 chiffres après la virgule en bas de la page.

    Et cela ne règle pas ma problématique de remplacer

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    var taux_prix_yen = document.getElementsByClassName("taux_prix_yen");

    par une "pseudo" constante :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    var TAUX_PRIX_YEN = 1;

    tout en obtenant une bonne valeur en
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <span class="taux_prix_converti_euro"></span>


    Je souhaiterais faire quelque chose plutôt comme ça :


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <span class="un_yen_en_euro"></span>


    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function taux_yeneuro(data) {
        var yen_taux_jpy=data.query.results.rate[0].Rate;
     
        var taux_prix_converti_euro = document.getElementsByClassName("un_yen_en_euro");
     
    	for(var i = 0; i++) {
    	un_yen_en_euro.item(i).innerHTML = " Cours moyen  journalier du Yen : 1 &yen; = "+1/yen_taux_jpy.toFixed(6)+" &euro;";
    	}
     
    };
    >

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="application/javascript" src="https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22EURJPY%22%2C%20%22JPYEUR%22)&amp;format=json&amp;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&amp;callback=taux_yeneuro"></script>

    Mais ça ne fonctionne pas !

Discussions similaires

  1. [2013] Remplacement d'un texte dans word par une macro sur excel
    Par Benoit L dans le forum Microsoft Office
    Réponses: 4
    Dernier message: 06/02/2015, 14h39
  2. faire une requête sur le résultat d'une requête
    Par clanou01 dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/08/2012, 11h44
  3. Remplir une zone de liste Excel par une requête Access
    Par Bourbaky dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/10/2007, 15h00
  4. Réponses: 1
    Dernier message: 09/10/2007, 14h17
  5. [Source][VBA-E] Remplir une zone de liste Excel par une requête Access
    Par cafeine dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/01/2007, 13h26

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