我正在尝试从我的数据表创建一个过滤器函数,如何使用数据表函数将我想要的来自 JavaScript 的值发布到 php?
这是我的数据表中的示例代码
var oTable = $('#datatables').DataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": base_url + "link",
"fnServerParams": function (data) {
data.filter_start_date = $('#filter_start_date').val();
console.log(data);
},
dom: 'lBfrtip',
buttons: [
'excel'
],
"lengthMenu": [[10, 20, 50, 100, 300, -1], [10, 20, 50, 100, 300, "All"]],
"pagingType": "full_numbers",
"language": {
"paginate": {
"previous": 'Prev',
"next": 'Next',
}
},
"bAutoWidth": false,
"aaSorting": [[ 0, "desc" ]],
});
data.filter_start_date
值是我希望它从我的 PHP 发布。 提前感谢您,我只是真的遇到了这个问题,还是我做错了。
在php
上,您将获得一个参数filter_start_date
该参数将在每datatables ajax request
发送一次。只需使用它来过滤您的结果。
在javascript
您可以执行类似操作来重新加载表
$('#filter_start_date').change(function() {
oTable.ajax.reload();
});
编辑:
这正是我使用它的方式:
$('#table').DataTable({
//configs
ajax: {
url: baseUrl('/ajax/load-docs'),
type: 'post',
data: function(d) {
d.initial_date = $('#initial_date').val();
}
}
});
并在php
$date = $this->getParam('initial_date'); //getParam from Zend_Framework Controller
在您的情况下,您可以使用$_POST['filter_start_date']