2017-02-22 101 views
0
return Response()->json(['message' => $input['first_name']]); 

給我在控制檯我的輸入文本我如何將它保存在數據庫中?如何在Laravel中保存AJAX響應

我嘗試使用

$input = Request::all(); 
     $user = Auth::user(); 
     $user->first_name = Response()->json(['message' => $input['first_name']]); 
     $user->save(); 

但不工作:/

回答

1

您可能會響應()相混淆.. 該響應()...是什麼,應在返回控制器的末端。這例子是

$input = Request::all(); 
    $user = Auth::user(); 
    $user->first_name = $input->first_name; 
    $user->save(); 
    return response()->json(['user_saved' => $user ]); 

編輯

// HomeController.php 
public function editUser(Request $request){ 
    $user = User::find(Auth::user()->id)->first(); 
    $user->first_name = $request->first_name; 
    if($user->save()){ 
    return response()->json(["response" =>true,"user"=>$user]); 
    } 
    return response()->json(["response" =>false,"user"=>$user]); 
} 

// routes/web.php 
Route::post('/user/update',[ 
    'uses'=>'[email protected]', 
    'as'=>'editUser' 
]); 

// javascript 
$('#updateProfile').on('click', function() { 
$.ajax({ 
    method: 'POST', 
    url: '{{route("editUser")}}', 
    data: { first_name: $('#firstname').val(), _token: token } 
}) 

(注:如果您使用的.js文件,你可能想在你的**。blade.php包括.js文件,定義可變網址有沒有像你似乎與令牌 做例如刀片) // index.blade.php

<script> 
    var token = "{{Session::token()}}"; 
    var urlEditUser = '{{route("editUser")}}'; 
</script> 
+0

POST HTTP://本地主機:8000/home/user中/更新500(內部服務器錯誤) 現在怎麼辦? –

+0

請檢查我的編輯請 –

+0

同樣,我想更新數據用戶,無需刷新頁面。 他點擊「保存」並完成提醒或不提示。我不知道如何刷新 –

0

我發送數據那樣: $('#updateProfile').on('click', function() { $.ajax({ method: 'POST', url: '/home/user/update', data: { first_name: $('#firstname').val(), _token: token } })

例如你不爲我工作:/

0

試試這個

$user = auth()->user(); 
$user->first_name = request('first_name'); 
$user->save(); 

return response()->json([ 'user_saved' => $user ]); 
+1

它的工作我愛你♥ –

+0

但是現在如果數據改變了,我怎麼能回顯彈出「完成」? –