从包含的 .php 文件中自动刷新表
Posted
技术标签:
【中文标题】从包含的 .php 文件中自动刷新表【英文标题】:Automatically refresh table from included .php file 【发布时间】:2015-09-21 08:56:14 【问题描述】:我一直在尝试在不刷新页面的情况下刷新表格。 我知道这可以通过 AJAX 完成,但我似乎无法让它工作。 这是我的情况: 我有一个包含 (table.php) 的 main.php 页面。这包括包含一个表 id:tablevisit。该表是动态生成的:它循环遍历数据库中的每一行。这是table.php
echo "<div id='tableContainer'>";
$con = new mysqli("localhost","sample","samplepass","sample");
$sql = "SELECT * FROM sampletable";
$i = 0;
$dyn_table = '<table border="1" cellpadding="10" class="visitorlist" id="tablevisit">';
$query = $con->query($sql);
while($row = $query->fetch_assoc())
$id = $row['ID'];
$name = $row['address'];
$date = $row['date'];
$time = $row['time'];
$url = $row['visit_url'];
$urlstring = $row['visit_url'];
if($i % 3 == 0)
$dyn_table .= '<tr><td>'.$name.'</td>';
$dyn_table .= '<td>'.$date.'</td>';
$dyn_table .= '<td>'.$time.'</td>';
$dyn_table .= '<td class="tdshort"><a href='.$url.' target = "_blank" class=" tdoverflow">' . $_SESSION['cuttedurl'] . '</a></td>';
$dyn_table .= '<td><button type= "button" name = "' . $id . '" class="dynamixbutton navbar-button btn-danger btn" post_id="' . $id . '" type="submit" >CHAT</button></td>';
$dyn_table .= '<td>' . $id . '</td>';
else
$dyn_table .= '<tr><td>'.$name.'</td>';
$dyn_table .= '<td>'.$date.'</td>';
$dyn_table .= '<td>'.$time.'</td>';
$dyn_table .= '<td><a href='.$url.' target = "_blank" class=" tdoverflow">' . $_SESSION['cuttedurl'] . '</a></td>';
$dyn_table .= '<td><button type= "button" name = "' . $id . '" class="dynamixbutton navbar-button btn-danger btn" post_id="' . $id . '" type="submit">CHAT</button></td>';
$dyn_table .= '<td>' . $id . '</td>';
$i++;
$dyn_table .='</tr></table>';
echo "</div>";
在 main.php echo $dyn_table;
被调用。
现在,$dyn_table 需要每 x 秒调用一次。如何做到这一点?
我试过只刷新表,但我认为每 x 秒调用一次 $dyn_table 会更好。
我试过this、this 和this,但对我来说没有用。这些是 html 元素,而不是 PHP 变量。
有什么建议么?建议、提示?
提前致谢!
【问题讨论】:
您的 PHP 文件只是创建了一个空 div 并将数据存储在一个变量中。您还没有回电到$dyn_table
。尝试将echo $dyn_table;
粘贴在靠近底部的某处(可能是echo "</div>";
上方的行
@Tom 我尝试在 div 中回显$dyn_table;
。不幸的是,它没有用。只是要确定; echo $dyn_table;
存在于 main.php 中,而 main.php 包括上面的代码 table.php。
你的 ajax 代码在哪里?从 ajax 调用同一页面并将当前文档的正文 > 数据替换为该 ajax 数据
【参考方案1】:
据我了解您的问题,我相信您对 ajax 的工作原理一无所知。也许这对你有帮助。
在伪代码中是这样的:
whenajaxrequestwassuccessfull (var tabledata = getDataFromServerViaAjax('http://URL of The PHP File which echos a json formated data string'))
var dataobject = convertjsontoobject(tabledata);
loop over the table
tablerow->tablefield->setData(dataobject->somedetail)
【讨论】:
是的,你说得对,我对 AJAX 只知道一点点。我正在努力学习哈哈。我会看看这个。以上是关于从包含的 .php 文件中自动刷新表的主要内容,如果未能解决你的问题,请参考以下文章
使用每日更新的Access表自动刷新SQL Server后端
使用每日更新的 Access 表自动刷新 SQL Server 后端