Récupérer des données d'une API et l'intégrer dans un calcul PHP
Résolu/Fermé
A voir également:
- Récupérer données api php
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer mon compte facebook désactivé - Guide
4 réponses
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
21 mai 2021 à 07:38
21 mai 2021 à 07:38
Bonjour
Au lieu (ou "en plus") de stocker la valeur du cours dans une div,
Mets le dans un input (hidden si tu veux) dans ton formulaire.
Il sera ainsi, envoyé en même temps que tes deux autres variables lors du submit.
Au lieu (ou "en plus") de stocker la valeur du cours dans une div,
Mets le dans un input (hidden si tu veux) dans ton formulaire.
Il sera ainsi, envoyé en même temps que tes deux autres variables lors du submit.
oui mais pourtant quand je met le input type hidden la valeur n'est pas récupéré. Il y a marqué dans le network les deux valeurs de l'utilisateur mais pour la valeur du cour il y mamarqué :
cours :
et aucune valeur n'est envoyé donc le calcul ne peux pas se faire
cours :
et aucune valeur n'est envoyé donc le calcul ne peux pas se faire
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
21 mai 2021 à 12:47
21 mai 2021 à 12:47
Il faut mettre ce champ à l'intérieur du formulaire bien entendu....
Montre-nous ce que tu as fait sans ça nous ne pourrons pas voir ce qui cloche
Montre-nous ce que tu as fait sans ça nous ne pourrons pas voir ce qui cloche
voici le code :
et la réponse :
Merci pour votre aide !
EDIT : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique
<body> <form action="cardano.php" method="post" class="box"> <h1>Cardano</h1> <div id="Cardano"> <div id="cours"></div> </div> <input type="text" name="nbrc" placeholder=" A combien avez vous acheter vos Cardano ?" /> <input type="text" name="invest" placeholder=" Pour quel montant ?" /> <input type="hidden" name="cours" id="cours" /> <input type="submit" value="Valider" placeholder="Valider" /> </body> </html>
et la réponse :
<?php if(empty($_POST['nbrc']) || empty($_POST['invest'])) { echo '<p>Il manque des valeurs</p>'; } else { if(!is_numeric($_POST['nbrc']) || !is_numeric($_POST['invest'])) { echo '<p>Les deux valeurs doivent contenir des chiffres uniquement</p>'; } else { $gain = $_POST['cours'] * $_POST['invest'] / $_POST['nbrc']; echo '<p>Vous avez ' . $gain . ' $</p>'; } } ?>
Merci pour votre aide !
EDIT : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
21 mai 2021 à 17:39
21 mai 2021 à 17:39
et le code JS qui permet de remplir le champ "cours" ?
Oui pardon le voilà :
</style>
<script type="text/javascript">
function formatMontant(m) {
var intlN=new Intl.NumberFormat();
return intlN.format(m);
}
/* Récupération des données de cours du Cardano */
function getCours(){
/* Appel AJAX vers cryptocompare.com */
var ajax=new XMLHttpRequest();
console.log("readyState après new : "+ajax.readyState);
/* Détection de l'avancement de l'appel */
ajax.onreadystatechange=function(){
console.log("readyState a changé et vaut : "+ajax.readyState)
}
/* Détection de la fin de l'appel */
ajax.onload = function(){
console.log("Appel AJAX terminé");
console.log(" status : "+this.status);
console.log(" response : "+this.response);
if (this.status == 200) { /* Le service a bien répondu */
try {
var json=JSON.parse(this.response); // Convertir le retour JSON
} catch(err) {
console.log("Retour JSON incorrect");
return false;
}
/* Vérifier que le JSON de retour contient bien la propriété EUR */
if (json.USD) {
var usd=formatMontant(json.USD);
document.getElementById("cours").innerHTML=usd+" $";
} else {
console.log("Retour du cours incorrect");
}
}
}
/* Détection du timeout */
ajax.ontimeout=function(){
console.log("Le service n'a pas répondu à temps : nouvel essai dans 5 sec");
/* Relancer l'appel 5 secondes plus tard */
setTimeout("getCours()", 10000);
}
/* Préparation de la requête et envoi */
var url="https://min-api.cryptocompare.com/data/price?fsym=ADA&tsyms=USD";
ajax.open("GET", url, true);
ajax.timeout=1000; /* Délai d'expiration à 1 seconde */
ajax.send();
}
/* Démarrage de l'appel */
window.onload=function(){
getCours();
setInterval("getCours()", 10000);
}
</script>
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
21 mai 2021 à 20:35
21 mai 2021 à 20:35
je n'avais pas vu
tu ne peux pas avoir deux éléments html avec le même ID
donc, ton input, tu dois lui mettre un autre id ... (par exemple cours2) et ajouter une ligne dans ton JS pour y mettre la valeur
tu ne peux pas avoir deux éléments html avec le même ID
donc, ton input, tu dois lui mettre un autre id ... (par exemple cours2) et ajouter une ligne dans ton JS pour y mettre la valeur
document.getElementById("cours2").value=usd;
Flo-mdt
>
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
21 mai 2021 à 23:28
21 mai 2021 à 23:28
Merci beaucoup pour votre aide tout fonctionne !
Cordialement Florian
Cordialement Florian