好的,所以我设法让一切运行起来——最后一件事。基本上,一个 jQuery+ajax 函数将日期增加 15 秒,并在 MySQL 中添加一个新行。我需要放入一个新行,以便获得历史记录的最后 5 行:
<?php
include("inc/dblink.inc");
$itemid = intval($_POST['i']);
$bid = intval($_POST['b']);
$row = mysql_fetch_array(mysql_query("SELECT * FROM test WHERE itemid=$itemid ORDER BY bidid DESC LIMIT 0,1"));
$date = $row['date'];
$newdate = strtotime($date);
$newerdate = ($newdate + 15);
$newestdate = date("Y-m-d H:i:s", $newerdate);
mysql_query("INSERT INTO test (date,bid,itemid) VALUES ('$newestdate','$bid','$itemid')");
?>
第二个脚本每秒刷新一次并显示表中的数据。
<script type="text/javascript">
var auto_refresh = setInterval(
function()
{
$('#timeleft').load('gettime.php', { i: <?=$itemid;?> }).show();
$.ajax({
type: "POST",
url: "gettime.php",
data: ({i : <?=$itemid;?>}),
success: function(data){
var s = data;
var t = s.split(/[- :]/);
var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
$('#defaultCountdown').countdown({until: d,compact: true,
description: ''});
}
});
}, 1000);
</script>
这是gettime.php
<?php
include("inc/dblink.inc");
$itemid = intval($_POST['i']);
$row = mysql_fetch_array(mysql_query("SELECT * FROM test WHERE itemid='$itemid' ORDER BY bidid DESC LIMIT 0,1"));
$date = $row['date'];
echo $date;
?>
我还使用了http://keith-wood.name/js/jquery.countdown.js中的 Keith Wood 的 jQuery 倒计时脚本
问题:
这条线$('#timeleft').load('gettime.php', { i: <?=$itemid;?> }).show();
不错。添加 15 秒的新时间显示没有问题。这是我遇到问题的倒计时。它不会为计时器增加 15 秒,但如果我刷新整个页面,我可以看到增加了 15 秒。
我究竟做错了什么?jQuery 相当新。谢谢!
您可以在这里看到它的实际效果。