2016-09-17 44 views
1

我在Laravel中創建了一個帶分頁的表格,然後向其中添加了搜索功能,但是當我嘗試搜索時只搜索當前頁面。我如何解決這個問題,以便我可以搜索表格所有頁面上的信息?我是新來的Laravel :)與Laravel分頁一起使用的表格搜索

表碼 -

<input type="text" id="search" placeholder="Type to search"> 
<table id="table"> 
    <thead> 
    <tr> 
     <th data-field="id">Ident</th> 
     <th data-field="name">Name</th> 
    </tr> 
    </thead> 
    <tbody> 
    @foreach ($airports as $airport) 
    <tr> 
    <td>{{ $airport->ident }}</td> 
    <td>{{ $airport->name }}</td> 
    </tr> 
    @endforeach 
    </tbody> 
    </table> 
    @include('pagination.default', ['paginator' => $airports]) 

使用Javascript -

<script type="text/javascript"> 
var $rows = $('#table tr'); 
$('#search').keyup(function() { 
    var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); 

    $rows.show().filter(function() { 
     var text = $(this).text().replace(/\s+/g, ' ').toLowerCase(); 
     return !~text.indexOf(val); 
    }).hide(); 
}); 
</script> 

回答

1

在laravel如果使用分頁只會加載限制設置的特定記錄。

->paginate(15) 

當你點擊翻頁按鈕,只有新的記錄集將只loaded.So那個時候你搜索單獨工作的第一頁。

如果你想這個工作了,你可以做一個Ajax調用控制器在頁面加載像這樣

use App/Airport; 

    public function getAirportList(Request $request,Airport $airport){ 

     if ($request->ajax()) { 
      $getResult = $airport->where(function($query){ 
        $$query->where('ident',$request->search) 
          ->orWhere('name',$request->search) 

      }); 

      return view('airports', compact('airports')); 
     } 

     $airports = $airport->paginate(10); 
     return view('airports',compact('airports')); 
    }