我正在使用Laravel 5.4,我的表中有Check Out按钮。我想当我点击该按钮时,它会更新数据库中的结账时间并更新我的表格。我正在尝试使用ajax,但它无法正常工作,但有时它也可以正常工作但不会重新加载表格,所以我需要手动刷新页面。
这是我的按钮代码:
<a type="button" name="checkout_btn" id="checkout_btn" data-id=" {{ $Data->VST_ID }}" class="btn btn-primary">Check Out</a>
这是我的ajax代码:
$('#checkout_btn').click(function addseries(e){
var VST_ID = $(e.currentTarget).attr('data-id');
alert("dfads");
$.ajax({
type: "GET",
url: 'visitor/checkout',
data: "VST_ID="+VST_ID,
success: function(data) {
console.log(data);
}
});
});
这是我的控制器代码:
public function Checkout(Request $request)
{
$visitor = Visitor::where("VST_ID",$request['VST_ID'])->first();
$visitor->VST_CHECKOUT = date('Y-m-d H:i:s');
$visitor->UPDATED_AT = date('Y-m-d H:i:s');
$visitor->UPDATED_BY = 'User';
$visitor->save();
return redirect()->route('Visitor.VList')->with('message','The Visitor has been Checked Out !');
}
答案 0 :(得分:1)
您可以通过两种方法完成此操作。
第一:通过对表体进行不同的视图。
在控制器设置视图中,如下例
if($request->ajax())
{
$records=\View::make('admin.settings.state.state-holiday-tbody',['contents'=>$contents,'active'=>$active,'tab'=>$tab])->render();
return response()->json(array('html'=>$records));
}
然后执行for循环以在表体中追加数据。
注意:调用函数以获取文档准备好的所有表记录。
第二:通过获取响应中的所有记录,使用javascript for循环来制作表格。
答案 1 :(得分:1)
我认为如果你想更新数据,方法是PUT,你为什么要使用GET方法?
$('#checkout_btn').click(function addseries(e){
var VST_ID = $(e.currentTarget).attr('data-id');
$.ajax({
type: "PUT",
url: 'visitor/checkout' + VST_ID,
success: function(data) {
console.log(data);
}
});
});
更改您的控制器
public function Checkout(Request $request, $id)
{
$visitor = Visitor::find($id);
$visitor->VST_CHECKOUT = date('Y-m-d H:i:s');
$visitor->UPDATED_AT = date('Y-m-d H:i:s');
$visitor->UPDATED_BY = 'User';
$visitor->save();
return redirect()->route('Visitor.VList')->with('message','The Visitor has been Checked Out !');
}
并更改你的route.php
Route::put('visitor/checkout/{id}', 'visitorController@Checkout');