我想通過Ajax將最新的mysql表中的條目拖動到div中並將其顯示爲html內容。我有一個Ajax和PHP功能正常,我唯一的問題是,我想查詢新的條目,並在一個循環內的時間間隔堆棧結果,我遇到了兩個問題:獲取數據的行爲像一個正常的JavaScript字符串,並獲得循環只返回唯一的條目。如何通過JQuery/Ajax請求返回最新的Mysql條目
update.php文件
$con=mysqli_connect("mydbhost.com","username","password","database_name");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM conversations");
$j = 0;
while($row = mysqli_fetch_array($result))
{
$carray[j] = $row['comment'];
$j++;
}
$comment = (array_pop($carray));
echo $comment;
echo "<br>";
mysqli_close($con);
JQuery的Ajax請求循環:
$(document).ready(function(e){
var comment;
function commentLoop() {
comment = $('#testdiv').load('update.php');
$('#testdiv').append(comment);
setTimeout(commentLoop, 6000);
}
commentLoop();
$(document).focus();
});
作爲一個以前的答案已經指出,您的SQL返回表中的一切,但你遍歷所有數據,只返回最後在你的回聲中排。此外,您正在使用'$ _POST ['comment']',但沒有任何內容被髮布到腳本中。最重要的是,在您的AJAX中,您將頁面加載到div中,然後將該加載的結果(它是一個非返回函數)附加到同一個div。所以,真的,這裏有很多事情可能會出錯。 – Jon 2013-04-09 23:22:01
我刪除了$ _POST('comment')。這與我的錯誤沒有任何關係。 – Emanegux 2013-04-09 23:28:53
您仍在選擇表格中的所有內容,只將其中一個發送回AJAX呼叫。如果需要,可以使用會話或其他方法,以便知道上次加載的位置,然後將其包含在select語句中,以便選擇實際要處理的正確數量的行並將它們全部輸出AJAX。而且,每次運行'commentLoop()'時,您仍然會替換整個DIV。 – Jon 2013-04-09 23:31:22