我在一个 div 中有一个特定的 php 代码,它从 mysql 获取数据。我希望这个 div 每分钟刷新一次,而不刷新整个页面。
目前我正在使用这个,效果不好
<div id="abc">
<?php
?>
</div>
window.setTimeout('location.reload()', 60000);
我在一个 div 中有一个特定的 php 代码,它从 mysql 获取数据。我希望这个 div 每分钟刷新一次,而不刷新整个页面。
目前我正在使用这个,效果不好
<div id="abc">
<?php
?>
</div>
window.setTimeout('location.reload()', 60000);
执行此操作的理想方法是使用jQuery.aja x 从您的服务器检索数据,然后在您的success
函数中使用 JavaScript/jQuery 来更新您的页面。
您仍然可以使用setTimeout
或等效的方式定期发出 AJAX 请求。
As you want to refresh the div content every minute you need to look at setInterval method and load of jQuery:
window.setInterval(function(){
$('#abc').load('PHPFile.php');
}, 1000);
and your PHP script mentioned in the url part of the load method must be capable to provide the result in HTML format which is going to be placed in the given div (id:abc)
将 PHP 代码放在另一个页面上(例如 loaddata.php),并有一个 jQuery 计时器执行加载页面loaddata.php的函数
加载数据.php
<?php
echo "Hello World!";
?>
索引.php
<div id="data"></div>
<script>
$('#div').load("loaddata.php", function() {
window.setInterval("loadData", 60000);
});
function loadData()
{
$('#div').load("loaddata.php");
}
</script>
jQuery Ajax 示例
文件1.php
<?php
echo 'PHP content e.g. from database based on submitted request - '.$_POST['my-value'];
?>
文件2.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>
对于这些情况,我有时会使用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 请求高效,但它完成了这项工作。
像这样的东西:
function refreshContent() {
$.post(urlHere, { data here...}, success(data) {
//...manipulate DOM here...
}
}
setTimeout(refreshContent, 60000);