Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中使用ajax单击按钮时如何更新数据?_Php_Ajax_Laravel_Laravel 5 - Fatal编程技术网

Php 在Laravel中使用ajax单击按钮时如何更新数据?

Php 在Laravel中使用ajax单击按钮时如何更新数据?,php,ajax,laravel,laravel-5,Php,Ajax,Laravel,Laravel 5,我使用的是Laravel 5.4,我的表中有“签出”按钮。我想当我点击该按钮时,它会更新数据库中的签出时间并更新我的表。我正在尝试使用ajax,但它不起作用,但有时它也起作用,但无法重新加载表,因此我需要手动刷新页面。以下是我的按钮代码: 退房 这是我的ajax代码: $('#checkout_btn').click(function addseries(e){ var VST_ID = $(e.currentTarget).attr('data-id'); alert("dfads

我使用的是Laravel 5.4,我的表中有“签出”按钮。我想当我点击该按钮时,它会更新数据库中的签出时间并更新我的表。我正在尝试使用ajax,但它不起作用,但有时它也起作用,但无法重新加载表,因此我需要手动刷新页面。
以下是我的按钮代码:
退房


这是我的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 !');       
}

您可以通过两种方法来实现这一点

1st:通过对表体进行不同的查看。

在控制器设置视图中,如下例所示

 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循环,将数据追加到表体

注意:调用函数以准备好文档上的所有表记录


2nd:通过获取响应中的所有记录,使用javascript for循环生成表体。

我认为如果要更新数据,该方法是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');

javascript不会自己更新表-表不知道数据库中现在有新数据。您需要在签出函数中返回新数据,并手动更新表行