1

我在一个 div 中有一个特定的 php 代码,它从 mysql 获取数据。我希望这个 div 每分钟刷新一次,而不刷新整个页面。

目前我正在使用这个,效果不好

<div id="abc">
<?php

?>
</div>

window.setTimeout('location.reload()', 60000);
4

6 回答 6

4

执行此操作的理想方法是使用jQuery.aja x 从您的服务器检索数据,然后在您的success函数中使用 JavaScript/jQuery 来更新您的页面。

您仍然可以使用setTimeout或等效的方式定期发出 AJAX 请求。

于 2013-08-05T15:06:07.600 回答
3

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)

于 2013-08-05T15:22:08.857 回答
1

将 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>
于 2013-08-05T15:08:07.047 回答
0

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>
于 2013-08-05T15:13:23.190 回答
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
  • 它每 10 秒执行一次

就是这样。一行代码,虽然不如真正的 ajax 请求高效,但它完成了这项工作。

于 2013-08-05T15:14:04.273 回答
0

像这样的东西:

function refreshContent() {
    $.post(urlHere, { data here...}, success(data) {
        //...manipulate DOM here...
    }
}

setTimeout(refreshContent, 60000);
于 2013-08-05T15:09:48.933 回答