我想通过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