【发布时间】:2012-12-15 18:43:36
【问题描述】:
我目前可以使用 jquery 和 php 在我的网站上刷新 div。这在一定程度上运作良好。问题是当前正在刷新的数据是整个表。标头中使用的代码如下:
<!-- DIV REFRESH START -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script>
var auto_refresh = setInterval(
function()
{
$('#datatable').fadeOut('slow').load('data/table.php').fadeIn("slow");
}, 10000);
</script>
<!-- DIV REFRESH END -->
如您所见,它正在刷新具有特定页面的特定 div。一般来说,我对 jquery 和基于 java 的编码非常陌生,因为我确信在这个问题中会很明显。
是否可以做到以下几点:
由于行数一直在变化,因此该表实际上是在 php 函数中创建的。是否可以让它专门刷新函数而不是只调用函数的页面?
表当前已完全刷新。这只是为了更新每一行的一个数字。让它只刷新行上的每个图形会更干净,但是由于表的灵活性以及它是函数的一部分这一事实是否可能?如果是这样,怎么可能?我知道我可以让每一行上的每个 div 都有一个唯一的 div 名称,然后我可以在页面顶部的脚本部分中考虑这个名称,但这不需要重复使用相同的代码添加每个可能的 div 名称吗?
-
虽然我知道可以根据数据库中的某些内容发生变化而不是延迟时间来刷新项目,但是考虑到上面列出的要求,最好的方法是什么?
李>
我可能会走得很远,这是对每个问题的简单回答,但我感谢任何和所有的意见。
谢谢!
附言如果有帮助,我目前用来创建表的函数如下(我知道它可以做得更干净,但它有点像一个学习项目):
function portalTable($venueId, $eventId)
{
echo "<table class='basic-table'><tr class='th'><th>Portal Name</th><th>Scanned</th></tr>";
$grandTotals = array();
$portalSql = mysql_query("SELECT * FROM portal WHERE id_venue = $venueId");
while ($portalRow = mysql_fetch_array($portalSql))
{
$portalId = $portalRow['id_portal'];
$portalName = $portalRow['name_portal'];
if($portalId&1) {$gray = "dg";} else {$gray = "lg";}
$sql = mysql_query("SELECT * FROM scan WHERE id_event = $eventId AND id_portal = $portalId");
while ($row = mysql_fetch_array($sql))
{
$scanTotal = $row['total_scan'];
echo "<tr class='$gray'><td>$portalName</td><td>$scanTotal</td></tr>";
$grandTotals[] = $scanTotal;
}
}
$totals = array_sum($grandTotals);
echo "<tr class='basic-table-total'><td>Total</td><td>$totals</td></tr>";
// total failed scans
$sql = mysql_query("SELECT total_errors FROM errors WHERE id_event = $eventId");
while ($row = mysql_fetch_array($sql))
{
$totalErrors = $row['total_errors'];
echo "<tr class='basic-table-total'><th>Total Rejected Scans</th><th>$totalErrors</th></tr>";
}
echo "</table>";
}
【问题讨论】:
-
您需要使用 AJAX,并让您的 PHP 返回 Javascript 处理的结构化数据(例如 JSON 或 XML),以了解如何更新表格。设计这个不是我可以写在答案中的快速事情,但也许为您的应用程序使用 MVC 框架会简化它。
-
他已经在使用 AJAX,阅读有关 jQuery.load(...) 的内容——实际上它是一个可以写在答案中的快速内容——阅读有关 jQuery.parseJSON(.. ..)
标签: php javascript jquery html refresh