我想实现一个JavaScript代码倒数百秒。我已经编写了倒计时代码,但我需要剩余时间的值,并在每秒的数据库中更新它。以下是我想要完成的一个例子:
每秒钟我想跑:
UPDATE 'table' SET 'timeleft=[remaining time]'
这可能吗?
以下是我迄今为止尝试过的内容:
<? $time = "100"; ?>
<script>
var intCountDown = <?php echo $time; ?>;
function countDown()
{
if(intCountDown < 0)
{
cntdwn.innerText = 'Done';
return;
}
cntdwn.innerText = intCountDown--;
setTimeout("countDown()",1000);
}
</script>
然后只需:<div id=cntdwn></div>
此外,这可能有助于澄清我的意图:我想实现一次性定时器,但更喜欢计数器溢出回到页面刷新后开始的位置。
答案 0 :(得分:0)
要做到这一点,你需要AJAX:
这是你的AJAX功能:
function loadXMLDoc(timeleft)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
cntdwn.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","update.php?timeleft="+timeleft,true);
xmlhttp.send();
}
使用上面的函数,我们可以发送一个int到update.php?timeleft =和update.php应该连接到数据库并更新你的timeleft值(我想你还是写了它)。在你的倒计时功能中只需替换这一行:
cntdwn.innerText = intCountDown--;
有了这个(因为我们将在ajax调用中更新innerText):
intCountDown--;
这一切都需要完成