簡體   English   中英

使用 ajax laravel 8 更新數據

[英]update data using ajax laravel 8

我正在嘗試使用 ajax 更新數據,但 ajax 在控制器功能中不起作用

incpect 控制台中的錯誤

PATCH http://127.0.0.1:8000/userData 500(內部服務器錯誤)發送@jquery-3.5.1.min.js:2 ajax@jquery-3.5.1.min.js:2(匿名)@home: 438調度@ jquery-3.5.1.min.js:2 v.handle@jquery-3.5.1.min.js:2

ajax 腳本

    $(document).ready(function(){

$(document).on("click", "#update_data", function() { 
    var url = "{{URL('/userData')}}";
    $.ajax({
        url: url,
        type: "PATCH",
        cache: false,
        data:{
            _token:'{{ csrf_token() }}',
            lat: $('#lat').val(),
            lon: $('#lon').val()
        },
        success: function(dataResult){
            dataResult = JSON.parse(dataResult);
         if(dataResult.statusCode)
         {
            window.location = "/userData";
         }
         else{
             alert("Internal Server Error");
         }
            
        }
    });
}); 

});

控制器中的更新功能

public function update()
{
    return redirect()->route('user.home');
    if(request('lat')){
        userData::Where('user_id',auth()->user()->id)->update( [ 'lat' => request('lat'), 'lon' => request('lon') ]);
    }
    return json_encode(array('statusCode'=>200));
}

路線

Route::Patch('/userData','UserController@update');

您首先要返回重定向,它將首先運行。 您需要將其刪除,因此代碼應為:

public function update(Request $request)
{
    if($request->has('lat')){
        $update = userData::where('user_id',auth()->user()->id)
          ->update([ 
             'lat' => $request->lat, 
             'lon' => $request->lon 
          ]);
        if ($update) {
           return response()->json([
              'statusCode' => 200
           ]);
        }
    }
    return response()->json([
        'statusCode' => 500 //for internal server error
    ])
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM