从包含的 .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 "&lt;/div&gt;"; 上方的行 @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 文件中自动刷新表的主要内容,如果未能解决你的问题,请参考以下文章

PhpMyAdmin 自动刷新 MySQL 表

使用每日更新的Access表自动刷新SQL Server后端

如何刷新数据透视图

使用每日更新的 Access 表自动刷新 SQL Server 后端

从 SQL Server DB 更新单独工作表中的数据后自动刷新 Excel 2007 数据透视表

SQL自动增长列数据变动刷新的问题