2016-09-17 8 views
1

Ich habe eine Tabelle in Laravel mit Paginierung erstellt und dann Suchfunktion hinzugefügt, aber wenn ich versuche und suche es nur die aktuelle Seite durchsucht. Wie würde ich das beheben, damit ich die Informationen durchsuchen kann, die auf allen Seiten der Tabelle sind? Ich bin neu in Laravel :)Tabellensuche funktioniert mit Laravel Paginierung

Tabelle Code -

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

Antwort

1

In Laravel wenn Sie es verwenden Paginierung wird nur die bestimmte Datensätze in Limit gesetzt laden.

->paginate(15) 

Wenn Sie auf die nächste Seite Taste zu diesem Zeitpunkt werden nur neue Satz von Datensätzen nur Sie suchen loaded.So werden allein für die erste Seite zu arbeiten.

Wenn Sie wollen, dass diese Sie einen Ajax-Aufruf an die Steuerung machen kann arbeiten, wo die Seite wie diese

geladen wird
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')); 
    }