when i change date from date picker it hit ajax request but not filtering my data
This my Lead Listing listing view where i am showing datatable:
<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();
});
});
This is my lead controller method for showing datatable results :
/**
* 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);
}
This is my Accessor for changing date format:
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function getCreatedAtAttribute($value) {
return date('m/d/Y', strtotime($this->attributes['created_at']));
}
My table is
leads:
id, first_name, last_name, number, email, studio_id, created_at, updated_at