Bonjour,
J'ai énormement de mal à créer un compte à rebours javascript intégré dans une boucle PHP. Voici mon code PHP avec
une table produit qui a comme champs id_produit, heure_fin (en seconde):
Code PHP :
<?php
$sql="SELECT * FROM produit LIMIT 0,5";
$result=mysql_query($sql);
while $n=mysql_fetch_object($result) { #dans cette boucle le probleme
echo '<div id="temps_'.$n->id_produit.'"></div>'; ?>
<script language="javascript">
[code=js]
duree="<?php print ($n->heure_fin-time()); ?>";
t('<?php print $n->id_produit; ?>');
</script>
}
?>
[/code]
A coté de ça, j'ai un fonction javascript nommée t(id) qui permet de faire le compte à rebours :
Code Javascript :
function t(id)
{
var compteur=document.getElementById('compteur_'+id);
s=duree;
m=0;h=0;j=0;
if(s<0) {
compteur.innerHTML="Vendu"
}
else {
if(s>59) {
m=Math.floor(s/60);
s=s-m*60
}
if(m>59) {
h=Math.floor(m/60);
m=m-h*60
}
if(h>23) {
j=Math.floor(h/24);
h=h-j*24
}
if(s<10) {
s="0"+s
}
if(m<10){
m="0"+m
}
if(j>0) {
compteur.innerHTML=j+"j "+h+"h "+m+"m "+s+"s";
}
else {
if(h>0) {
compteur.innerHTML=h+"h "+m+"m "+s+"s";
}
else {
compteur.innerHTML=m+"m "+s+"s";
}
}
}
duree=duree-1;
setTimeout(function() {t(id);},1000);
}
Quand je n'affiche qu'un seul produit, le compte à rebours décrément bien d'une seconde toutes les secondes et me l'affiche dans la div donc l'id correspond au produit.
Par contre, quand j'affiche 2 produits, dans chaque div un compte à rebours apparait mais correspond au temps restant du dernier produit de la boucle WHILE, et chaque compte à rebours décrémente de 2 secondes toutes les secondes.
Idem si 3 produits affichés, 3 comptes à rebours affichée mais le temps affiché est toujours celui du dernier produit et il décrément de 3 secondes.
Merci pour toute aide qui pourrait me sortir de l'un ou l'autre des problemes.
<Ptimushu>