【发布时间】:2012-01-06 06:03:19
【问题描述】:
我正在尝试构建一个页面,该页面使用 jQuery 每秒调用一个数据库并返回编号最高的行。
jQuery 代码如下(在 $('document').ready 中)
var id = 0;
$.post('check.php', 'id=0', function(data){
id = parseInt(data);
$('h1').text(data);
});
var timer = setInterval(function() {
$.post('check.php', 'id=' + id, function(data){
if (data != '')
$('h1').text(data)
else
$('h1').text("NOTHING!");
id = parseInt(data);
});
}, 1000);
而PHP文件check.php有如下代码(连接数据库后):
$id = $_POST['id'] - 1;
$query = "SELECT * FROM testtable WHERE 'id' > $id ORDER BY id DESC";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo "$row[0]";
当 'id' 是第一列时。
现在最高的行号是 13。我希望它将 13 发送到 PHP 文件。 $id 则为 12,因此它将选择所有 id 值高于 12 的行,返回 id 值为 13 的行。然后它会回显“13”,将其发送回 jQuery,然后将其解析为整数,使 id 等于 13。然后一分钟后再次将 13 发送到 PHP 文件,并且进程循环。
实际发生的情况是它在显示“13”和“NOTHING!”之间交替显示,我不知道为什么。
【问题讨论】:
-
这里缺少分号怎么办:$('h1').text(data)?
-
@AlfredoCastañedaGarcía,这是无意的,但这是 JavaScript,所以这并不重要。
标签: php jquery mysql ajax algorithm