Bonjour � tous,
J'ai un compte � rebours en php dont le code est ci-dessous :
Pour faire d�filer le compte � rebours sans recharger la page, j'utilise un script javascript -ajax.<?
$nbSecondes= 360 -(mktime() % 360);
$minutes = $nbSecondes / 60;
$secondes = $nbSecondes % 60;
if ($secondes<10) {
$secondes="0".$secondes;
}
$compteARebours = '0' . intval($minutes) . ' : ' . $secondes;
echo $compteARebours;
?>
Celui-ci fait d�filer le compte � rebours et affiche les r�ponses � la fin du compte � rebours sans recharger la page (c'est un jeu ou les r�ponses apparaissent au bout du compte � rebours).
Les probl�mes : lorsque je mets des caract�res comme "0" et ":" dans la variable $compteARebours, le compte � rebours s'affiche correctement, mais que la premi�re seconde. Ensuite, il affiche NaN (Not a Number).
Si j'enl�ve les caract�res, cela fonctionne. Dois-je donc modifier et rajouter quelque chose � la variable dans le php pour que cela fonctionne, ou dois-je modifier le javascript ci-dessous?
Le second probl�me : lorsque je fais d�filer le compte � rebours en php, en rechargeant la page, tout va bien. Il d�file bien de 59 � 00 secondes.
Par contre, et lorsque j'enl�ve les caract�res pour faire mes tests, pour ne pas avoir le Nan, lors du premier chargement, tout va bien, mais d�s qu'il arrive � 400 (pour 4 minutes 04:00), il passe alors � 399, au lieu de 359. Lorsque je recharge, alors les secondes sont de nouveau correctes...
Un coup de main la-dessus?
Le javascript :
<script language=javascript>
var x;
function tempsSession()
{
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non support� par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
var method = "GET";
var filename = "renvoyeTempsRestantSession.php";
var data = null;
xhr_object.open(method, filename, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var tmp = xhr_object.responseText;
document.form1.tempsRestantInitial.value = tmp;
document.form1.tempsRestant.value = tmp;
}
}
xhr_object.send(data);
}
function Decompte() {
//((document.form1.tempsRestant.value > 0)) ? (window.document.form1.tempsRestant.value = --valeur) : (window.clearInterval(x));
window.document.form1.tempsRestant.value--;
if (window.document.form1.tempsRestant.value == 0) {
window.clearInterval(x);
window.document.form1.submit.disabled = false;
window.document.getElementById("reponse").style.visibility="visible";
}
}
function init() {
x = window.setInterval('Decompte()', 1000);
}
function initCompteur()
{
tempsSession();
init();
}
</script>
Merci � vous... Par avance...
Partager