【发布时间】:2022-01-03 13:53:48
【问题描述】:
您好,我想从两个不同的列中过滤日期范围,这是我当前的过滤日期:
$(document).ready( function(){
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex){
var datepicker_to = $('#datepicker_to').datepicker("getDate");
var datepicker_from = $('#datepicker_from').datepicker("getDate");
var startDate = new Date(data[20]);
if (datepicker_from == null && datepicker_to == null) {return true; }
if (datepicker_from == null && startDate <= datepicker_to) {return true; }
if (datepicker_to == null && startDate >= datepicker_from) {return true; }
if (startDate <= datepicker_to && startDate >= datepicker_from) {return true; }
return false;
}
);
$('#datepicker_from, #datepicker_to').change(function() {
tableMediaOrder.draw();
});
});
到目前为止,我只能从一列中过滤日期范围,其中被过滤的列是 Date(data[20]); 列,即 created_at 列,有没有办法像我的情况一样过滤两列之间的日期范围是 @ 987654326@和periode_end?
这是专栏:
谢谢!
更新: 这是我的controller.php:
public function index(Request $request)
{
if ($request->ajax()) {
if(auth()->user()->is_admin){
$data = MediaOrder::get();
}else{
$data = MediaOrder::memberOf(auth()->user()->group_id)->get();>get('group_idUser'))->get();
}
return DataTables::of($data)
->addIndexColumn()
->addColumn('action',function($row){
$btn = '<a style="margin:5px" href="javascript:void(0)" id="viewMediaOrder" data-toggle="tooltip" data-id="'.$row->id.'" data-original-title="View" class="edit btn btn-primary btn-sm button1 viewMediaOrder" value="{{ csrf_token() }}"><i class="fa fa-eye mr-1"></i>View</a>';
if(!$row->isdisabled){
$btn = $btn.'<a style="margin:5px" href="javascript:void(0)" id="editMediaOrder" data-toggle="tooltip" data-id="'.$row->id.'" data-original-title="Edit" class="edit btn btn-warning btn-sm button1 editMediaOrder" value="{{ csrf_token() }}"><i class="fa fa-pencil mr-1"></i>Edit</a>
<a style="margin:5px" href="javascript:void(0)" data-toggle="tooltip" id="disableMediaOrder" data-id="'.$row->id.'" data-original-title="Delete" class="btn btn-danger btn-sm button1 disableMediaOrder" value="{{ csrf_token() }}"><i class="fa fa-power-off mr-1"></i>Disable</a>';
}
return $btn;
})
->rawColumns(['action'])
->make(true);
} else {
\Meta::set('title', 'Media Order');
$groups = Group::all();
$media_order = DB::table('media_order')->get();
$moo = MediaOrder::get();
$users = User::orderBy('name', 'asc')->get();
return view('media-order.index')->with(compact('users','moo','groups'));
}
}
【问题讨论】:
-
你能分享你的控制器代码
-
我已经更新了我的问题,但主要是我使用 jquery 作为我的过滤器,而不是来自我的索引
-
所以你需要在数据表端而不是服务器端过滤吗?
-
是的,类似的