我希望我的PHP页面每隔'n'秒刷新特定的DIV。
代码:
<body>
<div id="refreshData">
//Functions
</div>
<div id="setofDIV">
//Functions
</div>
</body>
<script type="text/javascript">
function show_data()
{
$('#refreshData').load('main.php);
}
setInterval('show_data()', 5000);
</script>
但刷新整体在main.php文件中复制两次后。
答案 0 :(得分:2)
PHP解决方案
要使这项工作,main.php
必须只返回div的内容。这意味着它需要检测何时呈现整个页面或只是div的内容。
有几种方法可以做到这一点。
使用HTTP_X_REQUESTED_WITH
标题
检测AJAX请求
if(!empty($ _ SERVER [&#39; HTTP_X_REQUESTED_WITH&#39;])&amp;&amp; strtolower($ _ SERVER [&#39; HTTP_X_REQUESTED_WITH&#39;])==&#39; xmlhttprequest&#39;) { //如果你到了这里,这是一个AJAX请求。确保只呈现div的内容。 }
与之类似。而不是制作单独的PHP文件,添加查询字符串参数,所以页面 会知道它应该只返回那部分。你甚至可以在查询字符串中指定哪个部分,这样就可以在不同的时间间隔内通过同一个php文件加载不同的部分。
JavaScript解决方案
或者,您可以只获取整个页面,并使用jQuery从中提取div的内容。 load function已经为此目的提供了方便的语法。
.load()方法允许我们指定一部分 要插入的远程文档。这是通过特殊的方式实现的 url参数的语法。如果有一个或多个空格字符 包含在字符串中,第一个字符串后面的字符串部分 假设space是一个确定内容的jQuery选择器 要加载。
load函数允许在url之后添加一个额外的选择器,匹配选择器的内容从AJAX响应中获取并插入到文档中的指定元素中。出于这个原因,id应该是不同的,否则你将在现有元素中插入一个具有相同id的元素,并且不允许这样做。
所以你的HTML应该是这样的:
<div id="refreshDataContainer">
<div id="refreshData">
</div>
</div>
完成更改后,您可以使用以下行完全替换#refreshData
:
$('#refreshDataContainer').load('main.php #refreshData');
答案 1 :(得分:-1)
请尝试以下方法: -
<div class="result"></div>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
function refresh_div() {
jQuery.ajax({
url:'YOUR PHP page url',
type:'POST',
success:function(results) {
jQuery(".result").html(results);
}
});
}
t = setInterval(refresh_div,1000);
</script>
&#39;您的PHP页面网址&#39;应包含您要在主页上显示的内容。