簡體   English   中英

帶有選擇框的Laravel 5.2分頁問題

[英]Laravel 5.2 pagination issue with select box

我想基於從選擇框和搜索框中選擇的值顯示數據。 但是每當我單擊頁面2,3,4 ....時,選擇框(也許搜索框也存在相同的問題)都會重置。

我相信我在視圖/控制器中錯過了帶有分頁代碼的內容。

請讓我知道解決此問題的方法。

控制者

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

    }


}

路線

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

});

視圖

@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

您必須通過GET傳遞參數,然后從URL中恢復參數。

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

這將帶您進入第2頁,依此類推……並帶有所有輸入值。

我在laracasts中找到了一個視頻,該視頻解釋了laravel 5.2中刀片模板的所有內置分頁選項: https ://laracasts.com/lessons/crazy-simple-pagination
您會看到搜索頁面的正確方法是:

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


這樣,它將保留當前的url參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM