Jquery刷新div

时间:2013-08-05 15:03:31

标签: php javascript jquery settimeout

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

目前我正在使用此功能,效果不佳

<div id="abc">
<?php

?>
</div>

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

6 个答案:

答案 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
  • 它每隔10秒就会这样做

就是这样。一行代码虽然没有真正的ajax请求那么高效,但却可以完成这项任务。