如何将id从ajax传递给控制器​​ - Laravel&阿贾克斯

时间:2017-12-27 14:12:16

标签: ajax laravel

目前,我正在显示页面上,我正在运行我的控制器中的show函数,因此我的网址在网址栏中显示为dashboard/1/people。现在,当我点击一个人时,它会路由到另一个页面,这就是调用getPeople的位置。

如何从1中的ajax请求获取我点击的scripts的人的ID并传递给我的控制器?

PS:目前,我已经在ajax请求中对1进行了硬编码,但我希望它是动态的

我如何完成这项工作?

脚本

 datatable = $('#table').DataTable({

                "ajax": "{{ route('dashboard/1/people') }}",
                "columns": [
                    {data: 'check', name: 'check'},      

                ],

控制器

  public function show($id)
     {
            $class = Class::whereId($id)->first();

         return view('show');
     }



     public function getPeople($id)
         {
            $get_id = $id;
            $class = Class::whereId($get_id)->first();
            $people = $class->peoples()->get();
            return Datatables::of($people)->addColumn('action', function ($ppl) {
                //return 
    })->make(true);        


         } 

2 个答案:

答案 0 :(得分:2)

这应该有效:

getPeople方法存储中,session变量中的ID

 public function getPeople($id)
     {
        $get_id = $id;
        //using session helper method
        session(['show_id' => $id]);
        $class = Class::whereId($get_id)->first();
        $people = $class->peoples()->get();
        return Datatables::of($people)->addColumn('action', function ($ppl) {
            //return 
        })->make(true);        
     } 

然后在你的ajax代码中访问它:

 datatable = $('#table').DataTable({

                "ajax": "{{ route('dashboard/'.session('show_id').'/people') }}",
                "columns": [
                    {data: 'check', name: 'check'},      

                ],

答案 1 :(得分:0)

DataTable ajax允许你以对象格式传递额外的参数,如下所示:

datatable = $('#table').DataTable({    
        "ajax": {
            "type": "GET",
            data:{id: my_id_var},
            "url": "my_route"
        }
    }

在你的函数中只需获取Request var

public function getPeople(Request $request){
            $get_id = $request->id;
            $class = Class::whereId($get_id)->first();
            $people = $class->peoples()->get();
            return Datatables::of($people)->addColumn('action', function ($ppl) {
                //return 
    })->make(true);        
}

Sorce Page

中的更多信息