我尝试打印一个简单的DataTables,当我在任何列上使用搜索/过滤器时(或者#34;整个表"页面右上角的一个),我想要更新。当我点击列标题(进行排序)时,请求会通过(尽管页面仍然显示"处理"无限期)。当我在过滤器中输入任何内容时,它会说"处理"无限期地,但没有请求传递给服务器。
以下是脚本:
client.php
<!-- jQuery and DataTables JS files, including CSS, are included here -->
<table id="employee-table" class="table-striped">
<thead>
<tr>
<th>First</th>
<th>Last</th>
<th>DOB</th>
</tr>
<tr>
<th>First</th>
<th>Last</th>
<th>DOB</th>
</tr>
</thead>
</table>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#employee-table").dataTable({
processing: true,
serverSide: true,
ajax: {
url: "datatable.php",
type: 'POST'
}
}).columnFilter({
sPlaceHolder: "head:after",
aoColumns: [
{ type: "text" },
{ type: "text" },
{ type: "text" }
]
});
});
</script>
datatable.php
file_put_contents("debug.txt", $_REQUEST);
echo '{
"draw": 1,
"recordsTotal": 3,
"recordsFiltered": 3,
"data": [
[
"Angelica",
"Ramos",
"1986-01-01"
],
[
"Ashton",
"Cox",
"1987-01-01"
],
[
"Test",
"Third",
"1989-01-01"
]
]
}';
正如您所看到的,我在服务器端脚本上所做的只是将所有请求的数据打印到文件中,以便我可以检查它。问题是,无论我在过滤器框中输入什么内容,都没有请求数据通过。这是一个视觉:
这是debug.txt的输出。请注意,这是在client.php的初始加载时加载到文件中的内容,当您在任何搜索框中键入任何内容时,它不会更改:
Array
(
[draw] => 1
[columns] => Array
(
[0] => Array
(
[data] => 0
[name] =>
[searchable] => true
[orderable] => true
[search] => Array
(
[value] =>
[regex] => false
)
)
[1] => Array
(
[data] => 1
[name] =>
[searchable] => true
[orderable] => true
[search] => Array
(
[value] =>
[regex] => false
)
)
[2] => Array
(
[data] => 2
[name] =>
[searchable] => true
[orderable] => true
[search] => Array
(
[value] =>
[regex] => false
)
)
)
[order] => Array
(
[0] => Array
(
[column] => 0
[dir] => asc
)
)
[start] => 0
[length] => 10
[search] => Array
(
[value] =>
[regex] => false
)
)
为了让过滤器正常工作,我缺少什么?我认为我的客户端DataTables JavaScript配置错误,但我不知道如何。我的搜索似乎只是拉起了#34;遗产&#34; DataTables解决方案,而不是他们拥有的简化版本。
非常感谢任何帮助!
答案 0 :(得分:0)
尝试如下:
client.php
$(document).ready(function() {
var oTable = $('#employee-table').dataTable({
"bJQueryUI": true,
"bProcessing": true,
"bServerSide": true,
"bRedraw": true,
"sAjaxSource": "datatable.php",
"aoColumns": [
{"mDataProp": "first"},
{"mDataProp": "last"},
{"mDataProp": "dob"},
],
"aaSorting": [[0, "asc"]]
});
});
<强> datatable.php 强>
请检查以下链接,并在datatable提供的代码中配置数据库设置。