我有一个日期选择器,并在更改时放置了一个jQuery侦听器:
$('#viewmonth').datepicker({language: 'ja', autoclose: true, minViewMode: 'months', format: $('#month_format').text(),})
.change(function() {
let date = $(this).datepicker("getDate");
let month = date.getMonth() + 1;
date = date.getFullYear() + '-' + month;
$.ajax({
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
type:'GET',
url:'/head/sale/h_2_501/changeMonth',
data: {'viewmonth': date}
});
});
更改日期后,它将重定向到changeMonth函数:
public function changeMonth() {
$viewmonth = date("Y-m-d", strtotime(Request::input('viewmonth')));
$viewmonth = mb_convert_kana($viewmonth, 'a');
error_log($viewmonth);
$filter = $this->pageInfo['filter'];
$filter['viewmonth'] = $viewmonth;
$this->updateFilterData($filter);
return redirect()->route('head.sale.h_2_501');
}
在此函数中,我正在更改用于显示某些数据的查询日期。问题是重定向到changeMonth内的索引路由后,结果显示未更改,但查询已更改。如何更新显示的数据?
答案 0 :(得分:1)
首先从return redirect()->route('head.sale.h_2_501');
函数中删除changeMonth()
。
然后将其添加到AJAX成功调用中。
$.ajax({
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
type:'GET',
url:'/head/sale/h_2_501/changeMonth',
data: {'viewmonth': date},
success: function (response) {
// this is the redirect after your changeMonth() function succeed.
window.location = '{{ route('head.sale.h_2_501') }}'
}
});