【发布时间】:2020-04-28 18:58:14
【问题描述】:
我正在构建一个简单的假期管理系统,它允许用户执行CRUD操作并根据日期范围检索数据。但是,我的 CRUD 操作按预期工作。但我无法根据用户选择的 ajax 调用中的日期范围检索数据。这也是第一个使用 laravel 框架和 ajax 开发的应用程序。我希望这里有人可以找出我的代码出现问题的原因并能够帮助我。
index.blade.php
<div class="input-group input-daterange">
<input type="text" name="from_date" id="from_date" readonly class="form-control">
<div class="input-group-addon to-text"> to </div>
<input type="text" name="to_date" id="to_date" readonly class="form-control">
</div>
HolidayController.php 中的ajax 请求处理程序方法
public function fetch_data(Request $request)
{
if($request->ajax()) {
if($request->from_date != '' && $request->to_date != '') {
$data = DB::table('holidays')
->whereBetween('startdate',
array($request->from_date, $request->to_date))
->get();
}
else {
$data = DB::table('holidays')->orderBy('startdate', 'desc')
->get();
}
echo json_encode($data);
}
}
web.php
<?php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::Resource('holiday', 'HolidayController');
从 custom_script.js
发出 ajax 请求$(document).ready(function() {
var date = new Date();
$('.input-daterange').datepicker( {
todayBtn: 'linked',
format: 'yyyy-mm-dd',
autoclose: true
});
var _token = $('input[name="_token"]').val();
fetch_data();
function fetch_data(from_date = '', to_date = '') {
$.ajax({
url:"{{ route('holiday.fetch_data')}}",
method:"POST",
data:{
from_date:from_date, to_date:to_date, _token:_token
},
dataType:"json",
success:function(data) {
var output = '';
$('#total_records').text(data.length);
for(var count = 0; count < data.length; count++) {
output += '<tr>';
output += '<td>' + data[count].id + '</td>';
output += '<td>' + data[count].firstname + '</td>';
output += '<td>' + data[count].lastname + '</td>';
output += '<td>' + data[count].startdate + '</td>';
output += '<td>' + data[count].enddate + '</td></tr>';
}
$('tbody').html(output);
}
})
}
$('#filter').click(function() {
var from_date = $('#from_date').val();
var to_date = $('#to_date').val();
if(from_date != '' && to_date != '') {
fetch_data(from_date, to_date);
}
else {
alert('Both Date is required');
}
});
$('#refresh').click(function() {
$('#from_date').val('');
$('#to_date').val('');
fetch_data();
});
});
【问题讨论】:
-
问题解决了,这正如我所料。问题是我试图在单独的 .js 文件中发送 AJAX,但 {{ }} 不起作用。感谢大家的帮助。