刷新jQuery数据表,而无需刷新整个页面

时间:2019-03-29 03:10:34

标签: javascript php jquery

我想每3秒刷新一次jquery数据表。我已经做到了,但是有分页问题。当我执行代码时,分页消失了,因此所有数据都没有分页显示。

这是我的代码:

addiu

这是我的javascript代码:

<div id="timexx">
  <table id="example1" class="table table-bordered table-striped" style="margin-right:-10px">
    <thead>
      <tr>
        <th>id #</th>
        <th>Name</th>
      </tr>
    </thead>
    <?php
      include('../dist/includes/dbcon.php');

      $query=mysqli_query($con,"SELECT * FROM accounts_tic WHERE statuss = 'New' OR statuss = 'On-Process' order by id DESC")or die(mysqli_error());
      while($row=mysqli_fetch_array($query)){
        $id=$row['id'];
        $name=$row['name'];

        ?>
      <tr>
        <td>
          <?php echo $id;?>
        </td>
        <td>
          <?php echo $name;?>
        </td>
      </tr>

      <?php }?>
  </table>
</div>

1 个答案:

答案 0 :(得分:0)

我建议与ajax.reload()一起使用ajax数据源。实际上,我链接到的文档页面上有一个您所追求的例子。

对于您的标记,您可以简单地创建表和标题:

<table id="example1" class="table table-bordered table-striped" style="margin-right:-10px">
    <thead>
        <tr>
            <th>id #</th>
            <th>Name</th>
        </tr>
    </thead>
</table>

然后使用ajax数据源初始化数据表,声明您的列并开始循环:

$(document).ready( function () {
    var table = $('#example1').DataTable({
        "ajax" : 'http://example.com/table_data.php',
        "columns" : [
            { "data" : "id" },
            { "data" : "name" )
        ]
    });
    setInterval(function () {
        // the second argument here will prevent the pagination
        // from reseting when the table is reloaded
        table.ajax.reload( null, false );
    }, 3000);
});

现在,您需要在为ajax数据源http://example.com/table_data.php声明的终结点处创建一个Web页面,该页面将表数据作为json发送出去。有几种方法可以进行结构化,但是我更喜欢将data属性用作the docs state:

  

此处显示的数据参数格式可用于简化的DataTables初始化,因为data是DataTables在源数据对象中查找的默认属性。

出于这个目标,您的php脚本可能看起来像这样:

include('../dist/includes/dbcon.php');
$query = mysqli_query($con, "SELECT * FROM accounts_tic WHERE statuss = 'New' OR statuss = 'On-Process' order by id DESC") or die(mysqli_error($con));
$results = [];
while ($row=mysqli_fetch_array($query)) {
    $results['data'][] = [
        'id'   => $row['id'],
        'name' => $row['name']
    ];
}
echo json_encode($results);

旁注,mysqli_error()需要一个参数,它应该是您的连接资源。