2017-12-27 417 views
0

目前,我在显示页面上,我正在运行功能show在我的控制器中,所以我的网址在url地址栏中显示为dashboard/1/people。现在,当我点击一个人时,它会路由到一个不同的页面,这就是调用getPeople的地方。如何将ID从ajax传递到控制器 - Laravel&Ajax

我怎样才能得到我点击的人的身份证号码是1来自scripts中的ajax请求并传递给我的控制器?

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


     } 

回答

1

这应该工作:

在你getPeople方法商店的ID在session变量:

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'},  

       ], 
0

的DataTable Ajax允许哟传递对象格式额外的参数,就像这样:

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

而在你的功能只是获取请求变种

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

相关问题