我在div中有一个特定的php代码从mysql中获取数据。我希望这个div每分钟刷新一次而不刷新整个页面。
目前我正在使用此功能,效果不佳
<div id="abc">
<?php
?>
</div>
window.setTimeout('location.reload()', 60000);
答案 0 :(得分:4)
执行此操作的理想方法是使用jQuery.aja x从服务器检索数据,然后在success
函数中使用JavaScript / jQuery更新页面。
您仍然可以使用setTimeout
或同等版本定期发出AJAX请求。
答案 1 :(得分:2)
由于您想每分钟刷新div内容,您需要查看jQuery的setInterval方法和load:
window.setInterval(function(){
$('#abc').load('PHPFile.php');
}, 1000);
并且在load方法的url部分中提到的PHP脚本必须能够以HTML格式提供结果,该格式将放在给定的div中(id:abc)
答案 2 :(得分:1)
将PHP代码放在另一个页面上(例如; loaddata.php)并让jQuery计时器执行一个加载页面的函数 loaddata.php
<强> Loaddata.php 强>
<?php
echo "Hello World!";
?>
<强>的index.php 强>
<div id="data"></div>
<script>
$('#div').load("loaddata.php", function() {
window.setInterval("loadData", 60000);
});
function loadData()
{
$('#div').load("loaddata.php");
}
</script>
答案 3 :(得分:0)
这样的事情:
function refreshContent() {
$.post(urlHere, { data here...}, success(data) {
//...manipulate DOM here...
}
}
setTimeout(refreshContent, 60000);
答案 4 :(得分:0)
jQuery Ajax示例
<强> file1.php 强>
<?php
echo 'PHP content e.g. from database based on submitted request - '.$_POST['my-value'];
?>
<强> file2.html 强>
<div class="content"></div>
<a href="#" class="reload-data"> Refresh div </a>
<script>
$(function(){
$(".reload-data").click(function(){
$.post("file1.php", {my-value: "something"}, function(data){
$(".content").html(data);
});
});
});
setTimeout(function(){$(".reload-data").click();}, 60000);
</script>
答案 5 :(得分:0)
对于这些情况,我有时会使用jQuery.load()
文档示例:
<div id="result"></div>
<script type="text/javascript">
function refreshDiv() {
$('#result').load('ajax/test.html #container', function(){ /* callback code here */ });
}
setInterval(refreshDiv, 10000);
</script>
执行以下操作:
#result
元素是否在当前页面中ajax/test.html
页面提出请求#container
,并将其转储到#result
就是这样。一行代码虽然没有真正的ajax请求那么高效,但却可以完成这项任务。