2016-09-17 6 views
1

Laravelでテーブルを作成した後、検索機能を追加しましたが、検索すると現在のページのみが検索されます。これを修正して、テーブルのすべてのページにある情報を検索できるようにするにはどうすればよいですか?私はLaravelに新しいです:)Laravel Paginationで動作するテーブル検索

表コード -

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

そのときに次のページボタンをクリックすると、新しいレコードセットのみが読み込まれます。検索だけが最初のページだけで動作しています。

あなたはこれが出て仕事をしたい場合は、ページが、この

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')); 
    } 
のようにロードされ、コントローラにAjaxの呼び出しを行うことができます
関連する問題