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之后刷新网站的一部分而不刷新整个页面