我想每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>
答案 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()
需要一个参数,它应该是您的连接资源。