从ajax获取参数到控制器Laravel

时间:2017-10-05 08:31:38

标签: javascript php jquery ajax laravel

我想在Laravel中将id的值传递给控制器​​

我的Ajax代码:

$(document).ready(function () {


            $(document).on('click', '.brnch_clk', function () {
                //alert('ok')
                var branchid = $(this).data('branch');
                $('#txt_branchid').val(branchid);
                alert($(this).data('branch'));

                $.ajax({
                    'url': 'search',
                    'type': 'GET',
                    'data': {id: branchid},

                    success: function(response){ // What to do if we succeed
                        if(data == "success")
                            alert(response);
                    },
                    error: function(response){
                        alert('Error'+response);
                    }



                });
            });

        });

我的控制器:

public function search(Request $request)
{
    $member = $request->get('id');
    return json_encode($member);
}

我的路线:

Route::get('search', 'ShowstaffController@search');

我的链接:

<a href="{{URL('search')}}" class="brnch_clk"
    data-branch="{{$value->branch_id}}"> {{$value->Branch_Name}}
</a>

如何从ajax到控制器获取参数id?

4 个答案:

答案 0 :(得分:1)

您无法在GET中发送data值。将其作为查询字符串发送到URL。 检查此代码:

$(document).ready(function () {


        $(document).on('click', '.brnch_clk', function (e) {
            e.preventDefault();

            //alert('ok')
            var branchid = $(this).data('branch');
            $('#txt_branchid').val(branchid);
            //alert($(this).data('branch'));

            $.ajax({
                'url': 'search?id='+branchid,
                'type': 'GET',
                'data': {},

                success: function(response){ // What to do if we succeed
                    if(data == "success")
                        alert(response);
                },
                error: function(response){
                    alert('Error'+response);
                }



            });
        });

    });

答案 1 :(得分:1)

您应使用query string方法获取来自query的参数。

$request->query('id');

答案 2 :(得分:1)

我认为'url': 'search?id='+branchid代替'url': 'search'应该强制JQuery发送data作为GET参数。否则,数据将作为POST参数发送。

答案 3 :(得分:0)

同一件事发生在我身上,我使用了所有解决方案,但无法获得结果。

这就是我所做的,

  • 创建了 formData 对象
  • 附加参数ID
  • 表单对象传递给ajax 数据属性
  • 使用 $ request-> get('id');
  • laravel控制器中获取值

此处是jQuery代码段

 var branchid = $(this).data('branch');
 var form = new formData();
 form.append('id',branchid)
                $.ajax({
                    'url': 'search',
                    'type': 'GET',
                    'data': form,

                    success: function(response){ // What to do if we succeed
                        if(data == "success")
                            alert(response);
                    },
                    error: function(response){
                        alert('Error'+response);
                    }
                });

Laravel控制器

public function search(Request $request)
{
 $id = $request->get('id');
}

注意::您无需编码json,Laravel默认以JSON格式发送响应。