> 백엔드 개발 > PHP 튜토리얼 > ThinkPHP 페이징 example_php 예제

ThinkPHP 페이징 example_php 예제

WBOY
풀어 주다: 2016-05-16 20:34:53
원래의
943명이 탐색했습니다.

이 기사의 예는 ThinkPHP 페이징 구현 방법을 설명하며 참고용으로 모든 사람과 공유됩니다. 구체적인 방법은 다음과 같습니다.

TP3.2 프레임워크 매뉴얼에 데이터 페이징이 있는데, 매번 너무 많은 코드를 작성해야 하고, 중국어 설정 등의 문제가 있어 정리가 필요합니다. 🎜>

인스턴스의 실행 효과는 아래 그림과 같습니다.

1. 페이징 방법:

코드 복사 코드는 다음과 같습니다.
/**
* TODO 기본 페이징과 동일한 코드 캡슐화로 프런트 엔드 코드가 줄어듭니다
* @param $m 모델, 참조로 전달
* @param $where 쿼리 조건
* @param int $pagesize 페이지당 쿼리 수
* @return ThinkPage
​*/
함수 getpage(&$m,$where,$pagesize=10){
$m1=clone $m;//모델의 얕은 복사본
$count = $m->where($where)->count();//연속 작업 후 Join 및 기타 작업은 재설정됩니다
$m=$m1;//특정 연속 작업을 유지하려면 모델을 얕게 복사하세요
$p=new ThinkPage($count,$pagesize);
$p->lastSuffix=false;
$p->setConfig('header','
  • 페이지당 총%TOTAL_ROW%레코드%LIST_ROW% 기사 %NOW_PAGE%페이지/전체%TOTAL_PAGE%페이지');
    $p->setConfig('prev','이전 페이지');
    $p->setConfig('다음','다음 페이지');
    $p->setConfig('마지막','마지막 페이지');
    $p->setConfig('첫번째','홈페이지');
    $p->setConfig('테마','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
    $p->parameter=I('get.');

    $m->limit($p->firstRow,$p->listRows);

    $p 반환

    }

  • getpage 메소드는 TP 프레임워크의 Application/Common/Common/function.php에 배치할 수 있습니다. 이 문서는 어디에서나 호출할 수 있는 몇 가지 공통 메소드(예: 컨트롤러 파일, 뷰 파일 등)를 구체적으로 배치할 수 있습니다. ).

    2. 페이징 메소드 호출

    코드 복사 코드는 다음과 같습니다.
    $m=M('products');
    $p=getpage($m,$where,10);
    $list=$m->field(true)->where($where)->order('id desc')->select();
    $this->list=$list;
    $this->page=$p->show();
    그런 다음 보기 코드


    3. 마지막 단계는 페이지네이션 스타일입니다. 배경 프레임워크가 인터넷에서 다운로드되었기 때문에 이 스타일도 구현할 수 있습니다. 혼자서는 간단합니다.

    코드 복사 코드는 다음과 같습니다.
    .pagination ul {
        디스플레이: 인라인 블록;
        여백-하단: 0;
        왼쪽 여백: 0;
        -webkit-border-radius: 3px;
        -moz-국경-반경: 3px;
        테두리 반경: 3px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
        -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
        상자 그림자: 0 1px 2px rgba(0,0,0,0.05);
    }
    .pagination ul li {
      디스플레이: 인라인;
    }

    .pagination ul li.rows {
        줄 높이: 30px;
        왼쪽 패딩: 5px;
    }
    .pagination ul li.rows b{color: #f00}

    .pagination ul li a, .pagination ul lispan {
        부동: 왼쪽;
        패딩: 4px 12px;
        줄 높이: 20px;
        텍스트 장식: 없음;
        배경색: #fff;
        배경: url('../images/bottom_bg.png') 0px 0px;
        테두리: 1px 솔리드 #d3dbde;
        /*테두리 왼쪽 너비: 0;*/
        여백 왼쪽: 2px;
        색상: #08c;
    }
    .pagination ul li a:hover{
        색상: 빨간색;
        배경: #0088cc;
    }
    .pagination ul li.first-child a, .pagination ul li.first-child 스팬 {
        테두리 왼쪽 너비: 1px;
        -webkit-border-bottom-left-radius: 3px;
        테두리 하단 왼쪽 반경: 3px;
        -webkit-border-top-left-radius: 3px;
        테두리 상단 왼쪽 반경: 3px;
        -moz-border-radius-bottomleft: 3px;
        -moz-border-radius-topleft: 3px;
    }
    .pagination ul .disabled 범위, .pagination ul .disabled a, .pagination ul .disabled a:hover {
    색상: #999;
    커서: 기본값;
    배경색: 투명;
    }
    .pagination ul .active a, .pagination ul .active 스팬 {
    색상: #999;
    커서: 기본값;
    }
    .pagination ul li a:hover, .pagination ul .active a, .pagination ul .activespan {
    배경색: #f0c040;
    }
    .pagination ul li.last-child a, .pagination ul li.last-child 스팬 {
        -webkit-border-top-right-radius: 3px;
        테두리 오른쪽 상단 반경: 3px;
        -webkit-border-bottom-right-radius: 3px;
        테두리 하단 오른쪽 반경: 3px;
        -moz-border-radius-topright: 3px;
        -moz-border-radius-bottomright: 3px;
    }

    .pagination ul li.current a{color: #f00 ;font-weight:bold; 배경: #ddd}

    希望本文所述对大가족의 ThinkPHP框架程序开发有所帮助。

    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿