현대 인터넷 기술의 지속적인 발전으로 인해 사용자의 데이터 접근을 용이하게 하기 위해 페이징 기능은 현대 웹사이트의 필수 기능 중 하나가 되었습니다. ThinkPHP3.2 프레임워크에서는 페이징 기능도 매우 유연하며 페이징 스타일과 페이지 번호 점프 기능을 사용자 정의할 수 있습니다. 이번 글에서는 ThinkPHP3.2의 페이징 페이지 번호 점프 기능 구현 방법과 주의사항을 소개합니다.
1. ThinkPHP3.2의 페이징 기능
ThinkPHP3.2 프레임워크에서는 다음과 같은 방법으로 간단한 페이징 기능을 구현할 수 있습니다.
// 查询数据 $list = M('User')->where($where)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select(); // 实例化分页类 $Page = new \Think\Page($count,$pageSize); // 输出分页html $this->assign('page',$Page->show());
그 중 $list는 쿼리된 데이터, $where는 쿼리 조건, $count는 쿼리 데이터의 총 개수이고, $pageSize는 각 페이지에 표시되는 데이터의 양입니다. ThinkPage 클래스를 인스턴스화한 후 $Page->show() 메소드를 통해 페이지가 매겨진 HTML을 출력할 수 있습니다.
2. 페이징 스타일 사용자 정의
ThinkPHP3.2 프레임워크에서는 다음 방법을 통해 페이징 스타일을 사용자 정의할 수 있습니다.
- 페이징 스타일 정의
현재 페이지에 Page.class.php라는 파일을 생성합니다. 프로젝트에서 다음 코드를 파일에 복사합니다.
<?php namespace Think; class Page { // 定义分页样式 private $rollPage = 5; // 分页栏每页显示的页数 private $lastSuffix = true; // 是否显示最后一页的页码后缀 private $config = array( 'header' => '<span>共 %TOTAL_ROW% 条记录</span>', 'prev' => ' '>>', 'first' => '1...', 'last' => '...%TOTAL_PAGE%', 'theme' => '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%', ); private $totalRows = 0; // 总行数 private $listRows = 20; // 每页显示行数 private $totalPages = 0; // 总页数 private $nowPage = 1; // 当前页数 private $firstRow = 1; // 起始行数 private $varPage = 'page'; // 分页变量名 private $p = 'p'; // 分页参数名 private $url = ''; // 当前链接URL private $baseUrl = ''; // 分页基础URL private $params = array(); // 分页跳转时要带的参数 private $anchor = ''; // 锚点参数 // 构造方法 public function __construct($totalRows,$listRows='',$p='page'){ $this->totalRows = $totalRows; $this->varPage = $p; if (!empty($listRows)) { $this->listRows = $listRows; } $this->totalPages = ceil($this->totalRows/$this->listRows); //总页数 $this->nowPage = !empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1; if(!empty($this->totalPages) && $this->nowPage>$this->totalPages) { $this->nowPage = $this->totalPages; } $this->firstRow = $this->listRows*($this->nowPage-1); } // 显示分页 public function show($url='') { if (0 == $this->totalRows) { return ''; } // 记录当前URL $this->url = empty($url) ? U(ACTION_NAME).'/' : $url; // 获取当前页码 $this->nowPage = !empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1; // 计算分页信息 $this->totalPages = ceil($this->totalRows/$this->listRows); // 分页处理 if($this->totalPages > $this->rollPage){ $linkPage = "
- ";
$inum = floor($this->rollPage/2);
if($this->nowPage lastSuffix=false;
}
if($this->nowPage > 1){
$this->addUrl($linkPage,$this->nowPage-1,'上一页','class="prev"');
}
for($i = 1; $i rollPage; $i++){
if(($this->nowPage+$inum) >= $this->totalPages && $this->totalPages > $this->rollPage){
$page = $this->totalPages-$this->rollPage+$i;
}else{
$page = $this->nowPage-$inum+$i;
}
if($page > 0 && $page != $this->nowPage){
if($page totalPages){
$this->addUrl($linkPage,$page,'第'.$page.'页','');
}else{
break;
}
}else{
if($page > 0 && $this->rollPage totalPages){
$this->addUrl($linkPage,$page,'第'.$page.'页','');
}
}
}
if($this->nowPage totalPages){
$this->addUrl($linkPage,$this->nowPage+1,'下一页','class="next"');
}
if($this->lastSuffix){
$this->addUrl($linkPage,$this->totalPages,'最后一页');
}
$linkPage.='
- ";
for($i=1;$itotalPages;$i++){
if($this->nowPage==$i) {
$linkPage.='
- '.$i.' '; } else { $this->addUrl($linkPage,$i,'第'.$i.'页',''); } } $linkPage.='
- 사용자 정의 페이징 스타일 사용
컨트롤러에 사용자 정의 페이징 스타일을 도입하고 다음과 같은 방식으로 사용합니다.
// 引入分页类 import("Think.Page"); // 查询数据总数 $count = M('User')->where($where)->count(); // 实例化分页类 $Page = new \Think\Page($count,$pageSize); // 自定义分页样式 $Page->setConfig('prev', '上一页'); $Page->setConfig('next', '下一页'); $Page->setConfig('first', '第一页'); $Page->setConfig('last', '最后一页'); $Page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%'); // 查询数据 $list = M('User')->where($where)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select(); // 输出分页html $this->assign('page',$Page->show());
3.페이지 매김 페이지 번호 점프 기능
ThinkPHP3.2 프레임워크에서는 페이징 스타일에 입력 상자와 버튼을 추가하여 페이징 페이지 번호 점프 기능을 구현합니다. 페이지 번호 점프 기능을 추가하는 단계는 다음과 같습니다.
- 페이징 스타일 수정
사용자 정의 페이징 스타일에 입력 상자 및 버튼 추가:
$Page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% <div> <input><span><button>GO!</button></span> </div>');
- 페이징 페이지 점프 기능 사용
In 보기 파일, 사용자 정의 페이징 스타일을 직접 사용하고 페이지 번호 점프 기능을 구현할 수 있습니다:
<div> <?php echo $page;?> </div>
그 중 사용자 정의 페이징 스타일에서는 "__PAGE__" 및 "__HREF__"를 사용하여 각각 현재 페이지 번호와 점프 링크를 나타냅니다. . 입력란에 점프 페이지 번호를 입력하고 버튼을 클릭하면 해당 페이지 번호로 이동합니다.
요약
ThinkPHP3.2 프레임워크에서는 페이징 스타일에 입력 상자와 버튼을 추가하여 페이징 페이지 점프 기능을 구현할 수 있습니다. 사용자 정의 페이징 스타일을 사용하면 페이징 스타일을 더욱 아름답게 만들 수 있으며 보다 구체적인 페이징 요구 사항을 충족할 수도 있습니다.
위 내용은 ThinkPHP3.2의 페이징 페이지 번호 점프 기능 구현 및 주의사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 ThinkPhp의 내장 테스트 프레임 워크에 대해 논의하여 장치 및 통합 테스트와 같은 주요 기능과 조기 버그 감지 및 개선 된 코드 품질을 통해 응용 프로그램 신뢰성을 향상시키는 방법을 강조합니다.

기사는 실시간 주식 시장 데이터 피드에 ThinkPHP를 사용하여 설정, 데이터 정확도, 최적화 및 보안 측정에 중점을 둡니다.

이 기사는 서버리스 아키텍처에서 ThinkPHP를 사용하기위한 주요 고려 사항에 대해 설명하고 성능 최적화, 무국적 설계 및 보안에 중점을 둡니다. 비용 효율성 및 확장 성과 같은 혜택을 강조하고 도전 과제를 해결합니다.

이 기사에서는 ThinkPHP 마이크로 서비스에서 서비스 검색 및로드 밸런싱 구현, 설정, 모범 사례, 통합 방법 및 권장 도구에 중점을 둡니다. [159 문자]

ThinkPhp의 IOC 컨테이너는 PHP apps.character 수 : 159의 효율적인 종속성 관리를위한 게으른 하중, 맥락 바인딩 및 메소드 주입과 같은 고급 기능을 제공합니다.

이 기사는 ThinkPhp를 사용하여 실시간 협업 도구를 구축하고 설정, WebSocket 통합 및 보안 모범 사례에 중점을 둡니다.

ThinkPhp는 가벼운 디자인, MVC 아키텍처 및 확장 성을 통해 SaaS 앱에 혜택을줍니다. 다양한 기능을 통해 확장 성을 향상시키고 개발 속도를 높이며 보안을 향상시킵니다.

이 기사는 설치, 구성, 작업 관리 및 확장성에 중점을 둔 ThinkPhp 및 RabbitMQ를 사용하여 분산 작업 큐 시스템을 구축합니다. 주요 문제는 고 가용성 보장, 손상과 같은 일반적인 함정을 피하는 것입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
