[RESOLU] Conversion Yen > Euro, avec taux de change de l'ECB ou xe.com ?

Avatar du membre
Eléphanteau du PHP | 28 Messages

06 mai 2015, 19:41

Free ne permet pas d'accéder à des fichiers externes en PHP donc je pense que tout ce que tu essayeras en PHP va échouer sauf à changer d'hébergeur :-/

Une solution serait de faire cela en full javascript avec l'API de Yahoo, voici ce que ça donnerai :
<div>Prix : <span class="prix_yen">478</span> JPY <span class="prix_converti_euro"></span></div>

<script>
function phpfrance_callback(data) {
    var taux_jpy=data.query.results.rate[0].Rate;

    var prix_yen = document.getElementsByClassName("prix_yen");
    var prix_converti_euro = document.getElementsByClassName("prix_converti_euro");
    
	for(var i = 0; i < prix_yen.length; i++) {
	    var montant_en_yen=parseFloat(prix_yen.item(i).innerHTML);
	    var montant_converti_en_euro = 1/taux_jpy*montant_en_yen;
	    prix_converti_euro.item(i).innerHTML = " soit "+montant_converti_en_euro.toFixed(2)+" EUR";
	}

};
</script>
<script 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)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=phpfrance_callback"></script>
Merci ! Cette solution là fonctionne chez free :D !

Il suffit donc que je multiplie les
<div>Prix : <span class="prix_yen">478</span> JPY <span class="prix_converti_euro"></span></div>
Et c'est dans la poche :P ?

Plus qu'a externaliser la fonction donc :) !

Avatar du membre
Eléphanteau du PHP | 28 Messages

06 mai 2015, 20:21

J'ai externalisé cette partie dans mon fichier .js
function phpfrance_callback(data) {
    var taux_jpy=data.query.results.rate[0].Rate;

    var prix_yen = document.getElementsByClassName("prix_yen");
    var prix_converti_euro = document.getElementsByClassName("prix_converti_euro");
    
	for(var i = 0; i < prix_yen.length; i++) {
	    var montant_en_yen=parseFloat(prix_yen.item(i).innerHTML);
	    var montant_converti_en_euro = 1/taux_jpy*montant_en_yen;
	    prix_converti_euro.item(i).innerHTML = " soit "+montant_converti_en_euro.toFixed(2)+" EUR";
	}

};
Puis-je aussi externaliser cette partie dans mon fichier *.js ?
Ou dois-je la garder au sein de chaque page ?
<script 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)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=phpfrance_callback"></script>

Avatar du membre
Eléphanteau du PHP | 28 Messages

07 mai 2015, 12:17

Finalement l'externalisation d'une seul partie du script pose soucis, le titre de la page disparait avec en message "En attente de ippaï.free.fr"

Voici en résultat la page pour laquelle j'ai demandé cette fonction : http://ippai.free.fr/materiel_import_du_japon.php

Merci à @rthur pour son script qui m'est d'une grande utilité sur cet article =D> !

j'ai pu aussi très facilement le modifier pour faire une conversion du $ vers € que j'avais besoin sur une autre page :) !

http://ippai.free.fr/materiel_packs.php

Avatar du membre
Eléphanteau du PHP | 28 Messages

08 mai 2015, 01:07

Au final j'ai re-externalisé cette partie dans mon fichier ippai.js
function phpfrance_callback(data) {
    var taux_jpy=data.query.results.rate[0].Rate;

    var prix_yen = document.getElementsByClassName("prix_yen");
    var prix_converti_euro = document.getElementsByClassName("prix_converti_euro");
    
	for(var i = 0; i < prix_yen.length; i++) {
	    var montant_en_yen=parseFloat(prix_yen.item(i).innerHTML);
	    var montant_converti_en_euro = 1/taux_jpy*montant_en_yen;
	    prix_converti_euro.item(i).innerHTML = " soit "+montant_converti_en_euro.toFixed(2)+" EUR";
	}

};
J'ai mis l'autre partie dans <html> en bas de page avec une ligne entre les balise sinon ça ne fonctionne pas.
<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)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=phpfrance_callback"></script>
Et au passage, cette partie ma donné du mal, car j'ai du remplacer tout les & par des & , et rajouter type="application/javascript" , car sinon la page n'était plus valide en XHTML Strict

Petit nouveau ! | 2 Messages

08 mai 2015, 09:06

Merci beaucoup pour ce très bon topic.

Avatar du membre
Eléphanteau du PHP | 28 Messages

08 mai 2015, 12:59

Merci beaucoup pour ce très bon topic.
Bonjour chère amie, ravie que ce sujet te plaise :D !

Mes vœux à tous les membres du forum, en ce 8 mai, fête de la victoire !

Encore merci à @rthur, Je suis aux anges d'avoir pu implémenter si rapidement cette fonction sur mon site.

Grâce à cela, je pourrais informer les visiteurs sur les vrais prix pratiqué au Japon.

Et leur éviter de se faire arnaquer, sur les prix de vente :D !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 mai 2015, 23:39

Encore merci à @rthur, Je suis aux anges d'avoir pu implémenter si rapidement cette fonction sur mon site.
Avec plaisir, ravi d'avoir pu aider ! :-)
Quand tout le reste a échoué, lisez le mode d'emploi...