【发布时间】:2019-12-04 23:04:31
【问题描述】:
当我从日期选择器更改日期时,它会命中 ajax 请求但不过滤我的数据
这是我显示数据表的潜在客户列表列表视图:
<script>
$(document).ready(function() {
$('#startDate').datepicker();
$('#endDate').datepicker();
var table = $('#myDataTable').DataTable({
processing: true,
serverSide: true,
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
],
ajax: '{{ route('leadData') }}',
columns: [
{data: 'first_name', name: 'first_name'},
{data: 'last_name', name: 'last_name'},
{data: 'number', name: 'number'},
{data: 'email', name: 'email'},
{data: 'studio_id', name: 'studio_id'},
{data: 'created_at', name: 'created_at'},
]
});
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
console.log('data');
var min = $('#startDate').datepicker('getDate');
var max = $('#endDate').datepicker('getDate');
var startDate = new Date(data[5]);
if (min == null && max == null) return true;
if (min == null && startDate <= max) return true;
if (max == null && startDate >= min) return true;
if (startDate <= max && startDate >= min) return true;
return false;
}
);
$('#startDate, #endDate').change( function() {
table.draw();
});
});
这是我显示数据表结果的主要控制器方法:
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function leadData() {
$leads = Lead::with('studio')->get();
// dd($leads[0]->created_at);
return Datatables::of($leads)->editColumn('studio_id', function($leads){
$leadname = $leads->studio->name;
return $leadname;
})->make(true);
}
这是我用于更改日期格式的访问器:
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function getCreatedAtAttribute($value) {
return date('m/d/Y', strtotime($this->attributes['created_at']));
}
我的桌子是
潜在客户:
id, first_name, last_name, number, email, studio_id, created_at, updated_at
【问题讨论】:
标签: php laravel datatables yajra-datatable