2017-08-31 135 views
0

你好我工作的laravel並試圖使一個AJAX動作laravel AJAX功能沒有返回值

function jsfunctionrr(value){ 
    var value_parts = value.split("+"); 
    $.ajax({ 
    type: 'POST', 
    url: '/getpoinsts', 
    data: { 
     '_token': $('input[name=_token]').val(), 
     'name': value_parts[1] 
    }, 
    success: function (data) { 
     $('#pointsValue').append(total_points); 
    } 
}); 

和控制器功能

public function getpoinsts(Request $request) 
{ 
    $user_points_parts = DB::table('clients_points')->where('user_id', $request->name)->get; 
    $total_points = 0; 

    foreach ($user_points_parts as $points_part) { 
     $total_points += $points_part->points; 
    } 

    return response()->json($total_points); 
} 

和路線

Route::post('/getpoinsts', '[email protected]'); 

但我沒有得到任何值的價值知道爲什麼?

+0

您是否嘗試在您的AJAX調用中添加「錯誤」函數以查看您的調用是否不成功? –

+0

你至少得到200迴應嗎? –

+0

我該怎麼做 – user3721008

回答

0

有代碼中的一些問題,我注意到:

  1. ->get;應該get();
  2. 有可能是一個問題,試圖將數字轉換成JSON。
  3. 在您引用total_points的ajax方法中,它沒有在任何地方定義。

試着改變你的控制器方法:

public function getpoinsts(Request $request) 
{ 
    $total_points = DB::table('clients_points')->where('user_id', $request->name)->sum('points'); 

    return response()->json(compact('total_points')); 
} 

和你的Ajax方法:

$.ajax({ 
    type: 'POST', 
    url: '/getpoinsts', 
    data: { 
     '_token': $('input[name=_token]').val(), 
     'name': value_parts[1] 
    }, 
    dataType: 'json', 
    success: function (data) { 
     $('#pointsValue').append(data.total_points); 
    } 
}); 

希望這有助於!

+0

它的工作 你救了我的一天 – user3721008