2016-05-10 16 views
0

Ich möchte Daten basierend auf den ausgewählten Werten aus Auswahlfeld und Suchfeld anzeigen. aber Auswahlfeld (vielleicht Suchfeld hat das gleiche Problem auch) wird zurückgesetzt, wenn ich auf die Seite 2,3,4 ....Laravel 5.2 Paginierungsproblem mit Auswahlfeld

Ich glaube, ich habe etwas mit Paginierungscode in der Ansicht/Controller verpasst.

Bitte lassen Sie mich wissen, wie Sie dieses Problem lösen können.

-Controller

class MemberListTestController extends Controller 
{ 

public function search(Request $request) 
{ 

    $request->flash(); 
    $memberName = $request->input('memberName'); 
    $chosenCenter = $request->input('chosenCenter'); 

    $memberLists= DB::table('tbMbrMember as Member') 
     ->select(['Org.orgNm', 
       'Member.firstNm', 
       'Member.lastNm', 
       'Member.regDate', 
       'MshipCd.mshipNm', 
       'Att.dt', 
       'Member.phoneCell', 
       'Member.email', 
       'Group.groupNm', 
       DB::raw('MAX(Att.dt) AttDt, GREATEST(MAX(Reg.endDt),MAX(Reg.expDt)) rExpDt')]) 
     ->join('tbMbrCenter as Center', 'Member.mbrCd', '=', 'Center.mbrCd') 
     ->join('tbCmOrg as Org', 'Center.orgCd', '=', 'Org.orgCd') 
     ->leftjoin('tbMbrGroup as Group','Center.orgCd','=','Group.orgCd') 
     ->leftjoin('tbMbrMshipReg as Reg', 'Member.mbrCd', '=', 'Reg.mbrCd') 
     ->leftjoin('tbCmMshipCd as MshipCd', 'MshipCd.mshipCd', '=', 'Reg.mshipCd') 
     ->leftjoin('tbMbrAtt as Att', 'Att.mbrCd', '=', 'Member.mbrCd') 
     ->where('Center.orgCd', $chosenCenter) 
     ->groupby('Member.mbrCd') 
     ->paginate(25); 


    $centerLists = DB::table('tbMbrCenter as Center') 
        ->select('Org.orgNm','Center.orgCd') 
        ->join('tbCmOrg as Org', 'Center.orgCd', '=', 'Org.orgCd') 
        ->where('Center.isShow','1') 
        ->where('Org.companyCd','c1') 
        ->where('Org.isShowList','1') 
        ->groupby('Center.orgCd') 
        ->orderby('Org.orgNm') 
        ->get(); 

    return view('member.memberList_test') 
     -> with('memberLists', $memberLists) 
     -> with('centerLists', $centerLists); 

    } 


} 

Routen

Route::group(['middleware' => ['web']], function() { 
Route::get('member/test','[email protected]'); 
Route::post('member/test','[email protected]'); 

}); 

Ansicht

@extends('layouts.master') 
@section('content') 


<div class="container-fluid"> 

    <p></p> 
    <div class="row"></div> 


    <div class="row"> 
     <div class="col-md-4"> 
      <form method="post" action="{{ url('member/test') }}" enctype="multipart/form-data"> 
       <input type="hidden" name="_token" value="{{ csrf_token() }}"> 

       <div class="form-group"> 


        <select class="form-control" id="chosenCenter" name="chosenCenter"> 
         <option value="" selected disabled> Choose Center</option> 
         @foreach ($centerLists as $centerList) 
          <option value= {{ $centerList->orgCd }} @if (old('chosenCenter') == $centerList->orgCd) selected @endif > {{ $centerList->orgNm }}</option> 
         @endforeach 

        </select> 
       </div> 

       <div class="form-group"> 
        <div class="input-group"> 
         <input type="text" class="form-control" 
           placeholder="Search for First Name, Last Name... 'search all' for blank " 
           name="memberName"> 

           <span class="input-group-btn"> 
            <button class="btn btn-default " type="submit">Search</button> 
           </span> 
        </div> 
       </div> 
      </form> 
     </div> 

    </div> 

    <div class='row'></div> 

    <div class="row"> 
     <table class="table table-striped table-condensed"> 
      <thead> 
      <th>#</th> 
      <th>Center</th> 
      <th>First Name</th> 
      <th>Last Name</th> 
      <th>Date of Reg.</th> 
      <th>Recent Membership</th> 
      <th>Date of Membership Exp.</th> 
      <th>Latest Attendance</th> 
      <th>Cell Phone</th> 
      <th>Email</th> 
      <th>Member Group</th> 

      </thead> 
      <tbody> 
      <?php $count = 1; ?> 
      @foreach($memberLists as $memberList) 
       <tr> 

        <td>{{ (($memberLists->currentPage() - 1) * $memberLists->perPage()) + $count++}}</td> 
        <td> {{ $memberList->orgNm }}</td> 
        <td> {{ $memberList->firstNm }} </td> 
        <td> {{ $memberList->lastNm }} </td> 
        <td> {{ $memberList->regDate }} </td> 
        <td> {{ $memberList->mshipNm }}</td> 

        @if (($memberList->rExpDt) >= date('y-m-d')) 
         <td> {{$memberList->rExpDt }}</td> 

        @else 
         <td> Expired on {{ $memberList->rExpDt }} </td> 
        @endif 
        <td>{{ $memberList->AttDt }}</td> 
        <td> {{ $memberList->phoneCell }}</td> 
        <td> {{ $memberList->email }}</td> 

        <td> {{ $memberList->groupNm }} </td> 
       </tr> 
      @endforeach 
      </tbody> 
     </table> 
     {!! $memberLists->render() !!} 

    </div> 

</div> 
@stop 

Antwort

1

Sie haben die Parameter über GET übergeben und die Parameter aus der URL zu erholen.

{!! $memberLists->appends(Input::all())->render() !!} 

Dies wird Sie auf Seite 2 und so weiter ... mit allen Eingabewerten senden.

+0

Vielen Dank für Ihre Antwort aber INPUT Fassade existiert nicht in 5.2 –

+0

und lassen Sie wissen, dass $ CenterLists Informationen (nicht $ memberLists) nicht auf eine andere Seite übertragen wird. –

+0

'' verwenden Eingabe; '' zu Beginn des Unterrichts? – Cristo

0

fand ich ein Video in laracasts, dass alle erklärt eingebaute in Paginierung Optionen für Blade-Vorlage in Laravel 5.2: https://laracasts.com/lessons/crazy-simple-pagination
Sie, dass der richtige Weg für eine Suchseite zu sehen ist:

{{ $memberLists->appends(Request::except('page'))->links() }}


Auf diese Weise wird es die aktuellen URL-Parameter beibehalten.