J'avais besoin d'afficher une variable issue d'une fonction JS dans une balise <p>. J'ai donc voulu utiliser innerHTML comme suit :
Voici ma fonction en Javascript, chargée de calculer en temps réel la valeur d'une commande :
function calculatePrice(buyform){
//Get selected data
var k_amountid = document.getElementById("key_amount");
var k_amount = k_amountid.options[k_amountid.selectedIndex].value;
var k_price = <?php echo $donnees['key_price'];?>;
//convert data to integers
k_amount = parseInt(k_amount);
k_price = parseInt(k_price);
//calculate total value
var total = k_amount*k_price;
//print value to PicExtPrice
document.getElementById("buy_total").value=total;
}
Et voici la balise dans laquelle devrait s'afficher le total
<p class="buy_preview_txt" id="live_value">x keys for <b id="buy_total"></b> $</p>
La première variable du Javascript est une valeur (de quantité) modifiée par l'utilisateur dans un formulaire PHP sur la même page. Idéalement cette valeur devrait être multipliée au prix, que je voudrais récupérer de ma base de donnée. Je ne sais pas si cette syntaxe peut fonctionner...
Voici la syntaxe compète :
<?php
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=csgokeystore;charset=utf8', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
// Si tout va bien, on peut continuer
// On récupère tout le contenu de la table stocks
$reponse = $bdd->query('SELECT * FROM stocks');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<script>
function calculatePrice(buyform){
//Get selected data
var k_amountid = document.getElementById("key_amount");
var k_amount = k_amountid.options[k_amountid.selectedIndex].value;
var k_price = <?php echo $donnees['key_price'];?>;
//convert data to integers
k_amount = parseInt(k_amount);
k_price = parseInt(k_price);
//calculate total value
var total = k_amount*k_price;
//print value to PicExtPrice
document.getElementById("buy_total").value=total;
}
</script>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
?>
<p class="buy_preview_txt" id="live_value">x keys for <b id="buy_total"></b> $</p>
Est-ce que quelqu'un voit le problème ? Merci d'avance :/
Il suffit de placer le script à la fin du body (ou bien dans une fonction exécutée, par exemple avec un window.onload, lors du chargement ) pour que le document existe lors de l’exécution du script
🚀 Software Engineer | https://lyro.fr
🚀 Software Engineer | https://lyro.fr
🚀 Software Engineer | https://lyro.fr