compteur en javascript/jquery -> Problème

Eléphanteau du PHP | 16 Messages

28 mai 2013, 17:04

Bonjour,

je cherche a réaliser un compteur simple en javascript, une horloge en fait, pour insertion dans une page.
le calcul est "simple" : Q = Q0 + K x T
Q0 = 2 500 000
K = 0,03
T = chaque seconde passée

ma méthode est la suivante

[javascript]
<script>
function economie() {
var base = 2500000;
var multiplicateur = 0.03;
var temps = 1;
var economie_realisee = (base + (multiplicateur*temps));
if (document.getElementById){
document.getElementById("affichage").innerHTML=economie_realisee;
}
temps+=1;
}
setInterval("economie()", 1000);
</script>
[/javascript]

-> 1er problème, ça marche pas (enfin, si le calcul se fait 1 seule fois, mais logiquement, puisque temps++, le multiplicateur devrait augmenter chaque seconde (puisque j'ai mis un setTinterval toutes les secondes)
-> 2eme problème : si ça marchait, vu que le javascript est exécuté du coté client, chaque fermeture de page remettrait a zero, hors, le but est de calculer une valeur qui augmente chaque seconde, indépendamment de qui la consulte. Hors, après m'être cassé le nez pour faire ça en php, il s'avère que ce n'est ni simple, ni recommandé, car éxécuter un code php chaque seconde, bonjour la saturation serveur (j'ai parcouru le forum tout de même !)

Bref, HELP ME PLEASE, je sais plus quoi faire là ! Et merci de votre attention :)

Mammouth du PHP | 619 Messages

28 mai 2013, 17:24

Bonjour,

[javascript]
<script>
var temps = 1;
function economie() {
var base = 2500000;
var multiplicateur = 0.03;
var economie_realisee = (base + (multiplicateur*temps));
if (document.getElementById){
document.getElementById("affichage").innerHTML=economie_realisee;
}
temps+=1;
}
setInterval("economie()", 1000);
</script>
[/javascript]

tu remets var temps = 1; dans ta function donc a chaque appelle il revient a 1

pour le 2eme souci faut stocker en session ou cookie (on va attend des connaisseur en javascript )

Eléphanteau du PHP | 16 Messages

28 mai 2013, 17:33

merci beaucoup pour le premier problème, c'est tout con, mais je m'en suis pas rendu compte...
pour le deuxième..., on attend ;-)