我正在嘗試構建一個頁面,該頁面使用jQuery每秒調用一次數據庫並返回最高編號的行。PHP/jQuery AJAX算法每隔一次只工作
jQuery的代碼如下(這是$( '文件')準備)
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」和「沒有!」之間交替顯示,我找不出原因。
怎麼樣在這裏缺少分號:$('h1').text(data)? – 2012-01-05 21:56:58
@AlfredoCastañedaGarcía,這是無意的,但這是JavaScript,因此無論如何它並不重要。 – 2012-01-05 22:04:24