【发布时间】:2020-01-14 08:34:09
【问题描述】:
我是这个dataTable概念的新手,我在我的文件中使用相同的代码请检查这个链接https://datatables.net/examples/data_sources/server_side.html,在这个我有三个文件,如server.php、ssp.class.php和page.php(在 server.php 文件中存在数据库相关代码,在 ssp.class.php 我有过滤相关数据然后 page.php 我有前端代码)。 在 server.php 文件中,我的代码如下:
$filename = 'filterdate.php';
$columns = array(
array( 'db' => 'filename', 'dt' => 0 ),
array( 'db' => 'date', 'dt' => 1 ),
array( 'db' => 'time', 'dt' => 2 ),
array( 'db' => 'source', 'dt' => 3 ),
array( 'db' => 'destination', 'dt' => 4 ),
array( 'db' => 'duration', 'dt' => 5 ),
array( 'db' => 'filename', 'dt' => 6 )
);
这里我的查询是我使用 datepicker 从名为 start_date 和 end_date 的两个输入字段中过滤日期列。
我正在尝试这段代码:
$(document).ready(function() {
var oTable = $('#example').DataTable({
"oLanguage": {
"sSearch": "Filter Data"
},
"iDisplayLength": -1,
"sPaginationType": "full_numbers",
});
$("#datepicker_from").datepicker({
dateFormat: 'yy-mm-dd',
showOn: "button",
buttonImage: "assets/images/cal.gif",
buttonImageOnly: false,
"onSelect": function(date) {
minDateFilter = new Date(date).getTime();
oTable.draw();
}
}).keyup(function() {
minDateFilter = new Date(this.value).getTime();
oTable.draw();
//alert(minDateFilter);
});
$("#datepicker_to").datepicker({
dateFormat: 'yy-mm-dd',
showOn: "button",
buttonImage: "assets/images/cal.gif",
buttonImageOnly: false,
"onSelect": function(date) {
maxDateFilter = new Date(date).getTime();
oTable.draw();
}
}).keyup(function() {
maxDateFilter = new Date(this.value).getTime();
oTable.draw();
//alert(maxDateFilter);
});
//});
} );
// Date range filter
minDateFilter = "";
maxDateFilter = "";
$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex) {
alert("inside table");
if (typeof aData._date == 'undefined') {
aData._date = new Date(aData[1]).getTime();
}
if (minDateFilter && !isNaN(minDateFilter)) {
if (aData._date < minDateFilter) {
return false;
}
}
if (maxDateFilter && !isNaN(maxDateFilter)) {
if (aData._date > maxDateFilter) {
return false;
}
}
return true;
}
);
在此代码中,我没有收到 filter 和 maxDateFilter 和 minDateFilter 发出警报,但在 $.fn.dataTableExt.afnFiltering.push( function(oSettings, aData, iDataIndex) { 功能中我没有收到警报框。
【问题讨论】:
-
控制台日志中是否有任何错误?
-
您是否使用像 url:datatables.net/examples/api/multi_filter.html 中存在的单个列过滤。如果是,则将单个值发送到服务器端。如果您想发送任何额外的参数,请查看datatables.net/examples/server_side/custom_vars.html
-
您可以使用插件轻松完成,请参阅此处的讨论 datatables.net/forums/discussion/39894/date-range-filter 和此处使用 js 的实时示例 live.datatables.net/zuciyawi/1/edit
-
谢谢@SimoneRossaini 一个错误是comimg like
Uncaught SyntaxError: Unexpected token '.'我认为这是datepicker css<script src="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"></script> -
谢谢@PrasadWargad datatables.net/examples/plug-ins/range_filtering.html 我需要这样,而不是年龄我想要过滤日期列,请检查一次。
标签: javascript php jquery datatables