laravel ajax函数不返回值

时间:2017-08-31 15:59:54

标签: ajax laravel

您好我正在开发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', 'LoyalityController@getpoinsts');

但我在后面没有任何价值知道为什么?

1 个答案:

答案 0 :(得分:0)

我注意到您的代码中存在一些问题:

  1. ->get;应为get();
  2. 尝试将数字转换为json可能存在问题。
  3. 在您的ajax方法中,您引用的是total_points,但未在任何地方定义。
  4. 尝试将控制器方法更改为:

    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);
        }
    });
    

    希望这有帮助!