0
현재 두 날짜 사이의 범위에서 작동하는 두 값 사이에서 데이터 테이블을 필터링하려고하지만 열 양 값의 최소와 최대 사이를 필터링하려고합니다. 나는 모든 데이터를 표시하는 첫 원하는이 지금 노력하고 있습니다 것입니다,하지만 난이 양laravel datatables 견인 금액 사이의 필터
보기 사이를 필터 테이블을 반환하는 아약스를 사용하려면 :
<div class="input-amountrange input-group" id="amountrange">
<input type="text" class="input-sm form-control" name="start_amount" id="start_amount" />
<span class="input-group-addon">to</span>
<input type="text" class="input-sm form-control" name="end_amount" id="end_amount"/>
</div>
데이터 테이블 아약스 :
var oTable = $('#users-table').DataTable({
dom: 'flBrtip',
buttons: [
'excelHtml5',
'csvHtml5',
'pdfHtml5'
],
stateSave: true,
paging: true,
pagingType: 'simple_numbers',
lengthMenu: [ [10,15, 30, 50, -1 ], [ 10,15, 30, 50, "All" ] ],
processing: true,
serverSide: true,
ajax: {
url: 'custom-filter-data',
data: function(d) {
d.start_date = $('input[name=start_date]').val();
d.end_date = $('input[name=end_date]').val();
d.start_amount =
$('input[name=start_amount]').val();
d.end_amount = $('input[name=end_amount]').val();
}
},
columns : [
{ data: 'details', name: 'details' },
{ data: 'postingdate', render: function (data) {
var date = new Date(data);
var month = date.getMonth() + 1;
return (month.length > 1 ? month : "0" + month) + "/" + date.getDate() + "/" + date.getFullYear();} },
{ data: 'description', name: 'description' },
{ data: 'amount', name: 'amount' },
{ data: 'type', name: 'type' },
{ data: 'vendor_name', name: 'vendors.vendor_name', mRender: function (data, type, row) {
return '<label hidden>'+data+'</label> <input type="text" id="vendor_name" class="vendor_name" data-id="'+row.id+'" onClick="this.select();" value="'+data+'">';
}
},
{ data: 'vendor_id', mRender: function (data, type, row) {
return '<label hidden>'+data+'</label> <input type="text" id="vendor_no" class="vendor_no" onClick="this.select();" value="'+data+'">';
}
},
{ data: 'category_name', name: 'excategories.category_name', mRender: function (data, type, row) {
return '<label hidden>'+data+'</label> <input type="text" id="category_name"
class="category_name" data-id="'+row.id+'" onClick="this.select();"
value="'+data+'">';
}
},
],
pageLength: 10,
});
oTable.draw();
컨트롤러
당신은 사용자 정의 필터를 생성하고 적용해야public function getCustomFilterData()
{
$arrStart = explode("/", Input::get('start_date'));
$arrEnd = explode("/", Input::get('end_date'));
$start = Carbon::create($arrStart[2], $arrStart[0], $arrStart[1], 0, 0, 0);
$end = Carbon::create($arrEnd[2], $arrEnd[0], $arrEnd[1], 23, 59, 59);
$vendorTableName= with(new Vendors())->getTable();
$categoryTableName= with(new Excategories())->getTable();
$orders=Checks::select(["checks.*","vendors.vendor_name","excategories.category_name"])->between($start, $end)->leftJoin($vendorTableName,$vendorTableName.".vendor_id","=","checks.vendor_id")->leftJoin($categoryTableName,$categoryTableName.".category_id","=","checks.category_id");
return Datatables::of($orders)->make(TRUE);
}
아무도 코드 작성에 도움이 될 수 있습니까? – AHKTM