2013-08-05 166 views
1

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

目前我使用这个,不能很好地工作

<div id="abc"> 
<?php 

?> 
</div> 

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

您必须使用Ajax。 – undefined

+0

您必须使用AJAX – Joyal

+0

...或者不推荐的iframe。 – undefined

回答

4

success内做到这一点是使用jQuery.aja X从服务器获取数据,然后使用JavaScript/jQuery的理想方式函数来更新你的页面。

您仍然可以使用setTimeout或同等产品来定期发出AJAX请求。

+1

你可以给出一个示例代码 –

+1

''setTimeout'应该在'success'函数内调用,以避免堆栈失败或意外长的请求。 – Flosculus

+0

例如:http://www.w3schools.com/jsref/met_win_setinterval.asp –

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> 
0

像这样:

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

setTimeout(refreshContent, 60000); 
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> 
0

的实施例对于这些情况我有时使用从文档

实施例:

<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请求效率高,但它完成了这项工作。

2

至于要刷新的div内容,你需要看看setInterval方法每分钟和jQuery的load

window.setInterval(function(){ 
    $('#abc').load('PHPFile.php'); 
}, 1000); 

和你的PHP脚本负载方法的URL部分提到必须能够以提供HTML格式的结果,该格式将被放置在给定的div(id:abc)