2017-12-27 91 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

相關問題