【问题标题】:Refresh datatable filled from MySQL without refreshing entire page every x seconds刷新从 MySQL 填充的数据表,而不每 x 秒刷新整个页面
【发布时间】:2020-09-22 09:49:41
【问题描述】:

我正在尝试刷新当前填充了来自 MySQL 的数据的数据表。

我的 PHP 文件:

<div class="col-md" id="tableDiv">
        <table class="table" id="myTable">
            <thead>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
            </thead>
            <tbody>
            <?php

            $connect = mysqli_connect($servername, $username, $password, $database);
            if (!$connect) {
                die(mysqli_error());
            }
            $results = mysqli_query($connect,"SELECT * FROM xxxx");
            while($row = $results->fetch_assoc()) {
                $imgdata = $row['xxx'];
                ?>
                <tr>
                    <td><?php echo '<img src="data:image/gif;base64,' . $imgdata . '" />'; ?></td>
                    <td><?php echo $row['1']?></td>
                    <td><?php echo $row['2'] ?></td>
                    <td><?php echo $row['3'] ?></td>
                    <td><?php echo $row['4'] ?></td>
                </tr>

                <?php
            }
            ?>
            </tbody>
        </table>

        <script>
            $(document).ready(function() {
                $('#myTable').DataTable( {
                    responsive: true,
                    "pageLength": 10
                    .ajax.reload(null, false);
                });
            });
        
        </script>

    </div>
</div>

Javascript 不起作用并破坏了数据表。 MySQL 不断被新数据填充,我只想用从 MySQL 数据库获得的新数据刷新网站上的表。

$(document).ready (function() {
$.ajax({
    url: "updatetable.php",
    success : function(data) {
        var o = JSON.parse(data);
        var table= $('#myTable').dataTable( {
            data : o,
            columns: [
                {"data" : "1"},
                {"data" : "2"},
                {"data" : "3"},
                {"data" : "4"},
                {"data" : "5"},
                
            ],
        });
          setInterval( function () {
            console.log('reloading table')
            table.ajax.reload( null, false ); 
            }, 1000 );
    } 
});
});

我目前正在使用上面的 JS 代码填充表格,但它不起作用。数据显示在表格中,但没有每秒刷新一次。

【问题讨论】:

    标签: javascript php datatable refresh


    【解决方案1】:

    你可以使用服务器端ajax - based jquery data-tabletime interval之后你可以重新加载表格数据而不是加载整页

    【讨论】:

    • 感谢您的意见。我现在从 JS 填充数据库,请参阅额外代码。你能告诉我为什么它不刷新吗?
    【解决方案2】:

    1 - 编写一个通过ajax请求加载数据表的函数

    2 - 将表分配给变量(let x)

    3 - 启动计时器并在 x 秒内调用该函数。

    4 - 在函数中 if (x == undefined){ 启动表 } else { 重新加载表 }

    请参阅此链接以重新加载表。 - https://datatables.net/reference/api/ajax.reload()

    【讨论】:

      猜你喜欢
      • 2014-01-10
      • 2014-03-23
      • 1970-01-01
      • 2015-02-12
      • 2012-12-08
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多