PHP刷新表格而不刷新整个页面

Posted

技术标签:

【中文标题】PHP刷新表格而不刷新整个页面【英文标题】:PHP refresh table without refresh entire page 【发布时间】:2014-01-10 19:27:58 【问题描述】:

我有一个 php 页面,其中有一个表格,其中显示了任何信息。该信息每三秒刷新一次。 现在我找到了刷新表格的解决方案:

<?php
echo "<div>Welcome!</div>";
echo "<div align= \"center\" id=\"infos\">";    
echo "<table border= \"1\">";
...
echo "</table>";
echo "</div>";
?>

<script type="text/javascript">

$(document).ready (function () 
    var updater = setTimeout (function () 
        $('div#infos').load ('index.php', 'update=true').scrollTop(lastScrollPos);
        , 3000);
);
</script>

这样html结果是正确的, 页面每 3 秒正确更新一次,但在第一次更新后发生了一件奇怪的事情:

HTML 结果:

<div>Welcome!</div>
<div align= "center" id="infos">    
<div>Welcome!</div>
<div align= "center" id="infos">    
<table border= "1">
...
</table>
</div>

所以,我在刷新 div 之前拥有的所有内容,现在我都将它们放在了 div 中。 我哪里错了?

【问题讨论】:

【参考方案1】:

如果我没记错的话,你又调用了同一个文件,所以你可以尝试这样做,

index.php

<?php
echo "<div>Welcome!</div>";
echo "<div align= \"center\" id=\"infos\">";    
echo "<table border= \"1\">";
...
echo "</table>";
echo "</div>";
?>

<script type="text/javascript">

$(document).ready (function () 
    var updater = setTimeout (function () 
        $('div#infos').load ('table.php', 'update=true').scrollTop(lastScrollPos);
        , 3000);
);
</script>

table.php

<?php
echo "<table border= \"1\">";
...
echo "</table>";
echo "</div>";
?>

【讨论】:

所以,我需要在 table.php 中制作表格的副本。第一次显示 index.php 的内容,然后显示 table.php。我明白了吗? 是的,我认为这可能有效,记住“table.php”也有填满表格的脚本...试试吧,如果它没有按您的意愿工作,请给我回信. 只刷新一次!奇怪的!可能是在第一次页面已经“准备好”之后? 使用 setInterval 而不是 setTimeout 来每 x 秒刷新一次【参考方案2】:

似乎你将 index.php 的结果加载到了 div#infos

要么制作一个只生成你喜欢加载的表的 php 或考虑一般的 HTTP 刷新 - 这将重新加载整个页面

【讨论】:

以上是关于PHP刷新表格而不刷新整个页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在jquery ajax之后刷新网站的一部分而不刷新整个页面

自动刷新表而不刷新页面 PHP MySQL

ajax中的表单提交而不刷新整个页面只刷新ATG中的特定div标签

仅使用 jQuery/Ajax 刷新表的值而不重新加载页面

刷新 iframe 而不刷新整个页面

提交表单并刷新产品 div 而不刷新页面