【问题标题】:Get parameter from ajax to controller Laravel从 ajax 获取参数到控制器 Laravel
【发布时间】:2018-03-16 19:24:33
【问题描述】:

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

我的 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 到控制器??

【问题讨论】:

  • 我想$member = $request-&gt;get('id'); 不起作用。
  • @Alexandru-IonutMihai 是的,我得到空白结果我怎样才能得到真正的结果?
  • 试试这个:$request-&gt;query('id');
  • @Alexandru-IonutMihai 结果还是空白
  • 尝试使用:$id = $_GET['id'];

标签: javascript php jquery ajax laravel


【解决方案1】:

您不能在data 中发送GET 值。在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);
                }



            });
        });

    });

【讨论】:

  • 仍然得到空白结果
  • 结果还是空白
  • 当我像你一样更改 url 时,我应该更新我的路线并使用参数 id 链接吗??
  • nop,在浏览器上打开Network 标签,然后查看request 数据。点击.brnch_clk时能看到id吗?
【解决方案2】:

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

$request->query('id');

【讨论】:

  • 仍然得到空白结果
【解决方案3】:

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

【讨论】:

  • 仍然无法得到结果,因为仍然输出空白
  • 通过路由传入参数。 Route::get('search/{id}', 'ShowstaffController@search');public function search($id)
【解决方案4】:

同样的事情发生在我身上,我使用了所有的解决方案,但无法得到结果。

我做了什么,

  • 创建了一个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 格式发送响应。

【讨论】:

    猜你喜欢
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2019-01-25
    • 2016-07-24
    • 2018-06-05
    • 2018-04-07
    • 2018-09-13
    相关资源
    最近更新 更多