我希望我的网站倒计时,以php的值(从MySQL数据库开始)开始。
目前我使用以下功能:
<script type="text/javascript">
var seconds;
var temp;
var tijd = <? echo json_encode($t); ?>
function countdown() {
seconds = document.getElementById('countdown').innerHTML;
seconds = parseInt(seconds, tijd);
if (seconds == 1) {
temp = document.getElementById('countdown');
temp.innerHTML = "0";
return;
}
seconds--;
temp = document.getElementById('countdown');
temp.innerHTML = seconds;
timeoutMyOswego = setTimeout(countdown, 1000);
}
countdown();
</script>
但是如果$ t不是10,则值会随着奇怪的步骤而增加。我怎么解决这个问题?我没有使用javascript的经验,所以这就是问题所在。
除此之外,当我添加此脚本时,以下代码:
header('Content-Type: text/html; charset=iso-8859-1');
不再起作用,因为例如“ë”用?表示?在文中。我不知道为什么会这样?
谁能帮帮我?提前致谢。
答案 0 :(得分:1)
如果你想要一个人类可读的计数器,你必须在parseInt函数的第二个参数中使用10
“为人类常用的十进制数字系统指定10。”
然后,您要从数据库中检索的唯一数字是计数器的开头。
我认为您的HTML代码中有这样的内容:
<div id="countdown"><?php echo $startCounterFromDB; //This is the start of the counter ?></div>
如果你想保留你的代码,你只需要在JavaScript中更改parseInt函数的第二个参数。
<script type="text/javascript">
var seconds;
var temp;
var tijd = 10; //always use 10
function countdown() {
seconds = document.getElementById('countdown').innerHTML;
seconds = parseInt(seconds, tijd);
if (seconds == 1) {
temp = document.getElementById('countdown');
temp.innerHTML = "0";
return;
}
seconds--;
temp = document.getElementById('countdown');
temp.innerHTML = seconds;
timeoutMyOswego = setTimeout(countdown, 1000);
}
countdown();
</script>
最后,UTF-8是所有文件的PSR标准,但您不需要使用json_encode函数,因为您只需要打印一个数字。
此代码可以使用。
答案 1 :(得分:0)
有什么关于PREMADE的美丽jquery countdown?