PHP使用javascript每3秒刷新一次数据
我试图每三秒读取一次数据,而不重新加载页面。我的脚本中缺少一些内容,因为在我重新加载页面之前,它不会刷新数据。提前谢谢PHP使用javascript每3秒刷新一次数据,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我试图每三秒读取一次数据,而不重新加载页面。我的脚本中缺少一些内容,因为在我重新加载页面之前,它不会刷新数据。提前谢谢 <html> <head> <meta charset="UTF-8"> <title>Testing</title> <!-- below script is for jquery --> <script type="tex
<html>
<head>
<meta charset="UTF-8">
<title>Testing</title>
<!-- below script is for jquery -->
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script type="text/javascript">
function refreshData(){
$.ajax({
url: 'localhost/index1.php',
type:"POST",
data:"dataPost",
success: function(data){
document.getElementById("dataPost").innerHTML = data;
//render the dynamic data into html
}
});
}
setInterval(refreshData, 3000);
</script>
</head>
<div id="dataPost">
<?php
$conn = mysql_connect('localhost','user','password');
$db = mysql_select_db('db',$conn);
$query = "select * from table";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo $row['data1']."<br/>";
}
?>
</div>
</html>
测试
函数refreshData(){
$.ajax({
url:'localhost/index1.php',
类型:“POST”,
数据:“数据邮报”,
成功:功能(数据){
document.getElementById(“dataPost”).innerHTML=数据;
//将动态数据呈现为html
}
});
}
设置间隔(刷新数据,3000);
不要调用页面本身,而是将div中的php代码放入一个.php文件中,并在AJAX调用中调用该文件。仅此而已。我同意@Axel,但由于Ajax是一个异步函数,即使您的PHP代码位于外部文件中,您仍然会遇到计时问题
基本上,您不知道Ajax调用需要多长时间才能完成(假设服务器繁忙或停机),因此手动将间隔设置为每3秒一次是没有意义的。您需要将其设置为上次完成后的3秒
在php上-只需将脚本放入外部文件(即script.php)
在Javascript上-
$(文档).ready(函数(){
刷新数据();
});
函数refreshData(){
$.ajax({
url:'localhost/script.php',
类型:“POST”,
数据:“数据邮报”,
成功:功能(数据){
document.getElementById(“dataPost”).innerHTML=data;//如果已经在使用jQuery,为什么不使用$('#dataPost').html(data)?
setTimeout(refreshData,3000);//将在最后一个调用完成3秒后进行下一个调用。
//将动态数据呈现为html
}
});
}
<?
$conn = mysql_connect('localhost','user','password');
$db = mysql_select_db('db',$conn);
$query = "select * from table";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo $row['data1']."<br/>";
}
?>
希望这有帮助
很多人都会指出,mysql_connect正在被弃用,因此最好开始使用MySQLi或PDO 我发现它这样做的原因是javascript版本。我使用了1.8.0,它开始运行良好。它一直在工作,但谷歌浏览器有版本问题。我做了很少的研究,尝试更改版本号,结果成功了。检查了控制台是否有错误?我尝试了,但没有成功。控制台没有显示任何错误,只是没有在特定间隔刷新数据开发工具的网络选项卡显示了什么?index1.php中的内容是什么?请尝试var ref=setInterval(function(){refreshData()},3000);直到我更改了javascript的版本号,它才起作用。但我同意你所说的方式是正确的+1美元。谢谢。正确的答案是更改javascript的版本。Google chrome没有使用旧的javascript,所以我改为1.8.0版本,效果很好
<?
$conn = mysql_connect('localhost','user','password');
$db = mysql_select_db('db',$conn);
$query = "select * from table";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo $row['data1']."<br/>";
}
?>