国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) php框架 ThinkPHP ThinkPHP3.2中分頁(yè)頁(yè)碼跳轉(zhuǎn)功能的實(shí)作與注意事項(xiàng)

ThinkPHP3.2中分頁(yè)頁(yè)碼跳轉(zhuǎn)功能的實(shí)作與注意事項(xiàng)

Apr 17, 2023 am 09:48 AM

隨著現(xiàn)代網(wǎng)路技術(shù)的不斷發(fā)展,網(wǎng)站的訪問(wèn)量越來(lái)越大,為了方便用戶存取數(shù)據(jù),分頁(yè)功能成為了現(xiàn)代網(wǎng)站必不可少的功能之一。在ThinkPHP3.2框架中,分頁(yè)功能也十分靈活,可以自訂分頁(yè)樣式和頁(yè)碼跳轉(zhuǎn)功能。本文將介紹ThinkPHP3.2中分頁(yè)頁(yè)碼跳轉(zhuǎn)功能的實(shí)作方法與注意事項(xiàng)。

一、ThinkPHP3.2的分頁(yè)功能

在ThinkPHP3.2框架中,可以透過(guò)以下方法實(shí)作簡(jiǎn)單的分頁(yè)功能:

//?查詢數(shù)據(jù)
$list?=?M('User')->where($where)->order('id?desc')->limit($Page->firstRow.','.$Page->listRows)->select();

//?實(shí)例化分頁(yè)類
$Page?=?new?\Think\Page($count,$pageSize);

//?輸出分頁(yè)html
$this->assign('page',$Page->show());

其中,$list為查詢到的數(shù)據(jù),$where為查詢條件,$count為查詢數(shù)據(jù)總數(shù),$pageSize為每一頁(yè)顯示的數(shù)據(jù)量。實(shí)例化\Think\Page類別後,即可透過(guò)$Page->show()方法輸出分頁(yè)html。

二、自訂分頁(yè)樣式

在ThinkPHP3.2框架中,可以透過(guò)以下方法自訂分頁(yè)樣式:

  1. #定義分頁(yè)樣式

#在目前專案中建立一個(gè)名為Page.class.php的文件,將下列程式碼複製到該檔案中:

<?php
namespace Think;
class Page {
    // 定義分頁(yè)樣式
    private $rollPage   = 5; // 分頁(yè)欄每頁(yè)顯示的頁(yè)數(shù)
    private $lastSuffix = true; // 是否顯示最后一頁(yè)的頁(yè)碼后綴
    private $config     = array(
        &#39;header&#39; =>?'<span class="rows">共?%TOTAL_ROW%?條記錄</span>',
????????'prev'???=>?'<<&#39;,
        &#39;next&#39;   =>?'>>',
????????'first'??=>?'1...',
????????'last'???=>?'...%TOTAL_PAGE%',
????????'theme'??=>?'%FIRST%?%UP_PAGE%?%LINK_PAGE%?%DOWN_PAGE%?%END%',
????);
????private?$totalRows??=?0;?//?總行數(shù)
????private?$listRows???=?20;?//?每頁(yè)顯示行數(shù)
????private?$totalPages?=?0;?//?總頁(yè)數(shù)
????private?$nowPage????=?1;?//?當(dāng)前頁(yè)數(shù)
????private?$firstRow???=?1;?//?起始行數(shù)
????private?$varPage????=?'page';?//?分頁(yè)變量名
????private?$p??????????=?'p';?//?分頁(yè)參數(shù)名
????private?$url????????=?'';?//?當(dāng)前鏈接URL
????private?$baseUrl????=?'';?//?分頁(yè)基礎(chǔ)URL
????private?$params?????=?array();?//?分頁(yè)跳轉(zhuǎn)時(shí)要帶的參數(shù)
????private?$anchor?????=?'';?//?錨點(diǎn)參數(shù)
????//?構(gòu)造方法
????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);?//總頁(yè)數(shù)
????????$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);
????}
????//?顯示分頁(yè)
????public?function?show($url='')?{
????????if?(0?==?$this->totalRows)?{
????????????return?'';
????????}

????????//?記錄當(dāng)前URL
????????$this->url?=?empty($url)???U(ACTION_NAME).'/'?:?$url;
????????//?獲取當(dāng)前頁(yè)碼
????????$this->nowPage????=?!empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1;
????????//?計(jì)算分頁(yè)信息
????????$this->totalPages?=?ceil($this->totalRows/$this->listRows);

????????//?分頁(yè)處理
????????if($this->totalPages?>?$this->rollPage){
????????????$linkPage?=?"<ul class=&#39;pagination&#39;>";
????????????$inum?=?floor($this->rollPage/2);
????????????if($this->nowPage?<= $inum){
                $this->lastSuffix=false;
????????????}
????????????if($this->nowPage?>?1){
????????????????$this->addUrl($linkPage,$this->nowPage-1,'上一頁(yè)','class="prev"');
????????????}
????????????for($i?=?1;?$i?<= $this->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?<= $this->totalPages){
????????????????????????$this->addUrl($linkPage,$page,'第'.$page.'頁(yè)','');
????????????????????}else{
????????????????????????break;
????????????????????}
????????????????}else{
????????????????????if($page?>?0?&&?$this->rollPage?< $this->totalPages){
????????????????????????$this->addUrl($linkPage,$page,'第'.$page.'頁(yè)','');
????????????????????}
????????????????}
????????????}
????????????if($this->nowPage?< $this->totalPages){
????????????????$this->addUrl($linkPage,$this->nowPage+1,'下一頁(yè)','class="next"');
????????????}
????????????if($this->lastSuffix){
????????????????$this->addUrl($linkPage,$this->totalPages,'最后一頁(yè)');
????????????}
????????????$linkPage.='</ul>';
????????}else{
????????????$linkPage?=?"<ul class=&#39;pagination&#39;>";
????????????for($i=1;$i<=$this->totalPages;$i++){
????????????????if($this->nowPage==$i)?{
????????????????????$linkPage.='<li class="active"><span>'.$i.'</span></li>';
????????????????}?else?{
????????????????????$this->addUrl($linkPage,$i,'第'.$i.'頁(yè)','');
????????????????}
????????????}
????????????$linkPage.='</ul>';
????????}
????????$pageStr??=?str_replace(
????????????array('%HEADER%','%NOW_PAGE%','%TOTAL_PAGE%','%TOTAL_ROW%','%FIRST%','%UP_PAGE%','%LINK_PAGE%','%DOWN_PAGE%','%END%'),
????????????array($this->config['header'],$this->nowPage,$this->totalPages,$this->totalRows,$this->config['first'],$this->config['prev'],$linkPage,$this->config['next'],$this->config['last']),$this->config['theme']);
????????return?$pageStr;
????}
????//?添加分頁(yè)URL
????protected?function?addUrl(&$linkPage,$page,$text,$class=''){
????????if($page?>?0){
????????????$url?=?$this->url;
????????????$url?.=?strpos($url,'?')???'&'?:?'?';
????????????$url?.=?$this->p.'='.$page;
????????????if(!empty($this->params)){
????????????????foreach($this->params?as?$key=>$val){
????????????????????$url?.=?'&'.$key.'='.$val;
????????????????}
????????????}
????????????if(!empty($this->anchor)){
????????????????$url?.=?'#'.$this->anchor;
????????????}
????????????$linkPage.='<li &#39;.$class.&#39;><a href="&#39;.htmlentities($url).&#39;">'.$text.'</a></li>';
????????}
????}
}
  1. 使用自訂分頁(yè)樣式

在控制器中引入自訂分頁(yè)樣式,並以以下方式使用:

//?引入分頁(yè)類
import("Think.Page");
//?查詢數(shù)據(jù)總數(shù)
$count?=?M('User')->where($where)->count();
//?實(shí)例化分頁(yè)類
$Page?=?new?\Think\Page($count,$pageSize);
//?自定義分頁(yè)樣式
$Page->setConfig('prev',?'上一頁(yè)');
$Page->setConfig('next',?'下一頁(yè)');
$Page->setConfig('first',?'第一頁(yè)');
$Page->setConfig('last',?'最后一頁(yè)');
$Page->setConfig('theme',?'%FIRST%?%UP_PAGE%?%LINK_PAGE%?%DOWN_PAGE%?%END%');
//?查詢數(shù)據(jù)
$list?=?M('User')->where($where)->order('id?desc')->limit($Page->firstRow.','.$Page->listRows)->select();
//?輸出分頁(yè)html
$this->assign('page',$Page->show());

三、分頁(yè)頁(yè)碼跳轉(zhuǎn)功能

在ThinkPHP3.2框架中,分頁(yè)頁(yè)碼跳轉(zhuǎn)功能透過(guò)在分頁(yè)樣式中新增輸入框和按鈕來(lái)實(shí)現(xiàn)。新增頁(yè)碼跳轉(zhuǎn)功能的步驟如下:

  1. 修改分頁(yè)樣式

#在自訂分頁(yè)樣式中新增一個(gè)輸入框和一個(gè)按鈕:

$Page->setConfig('theme',?'%FIRST%?%UP_PAGE%?%LINK_PAGE%?%DOWN_PAGE%?%END%?<div class="input-group input-group-sm" style="width: 150px;display:inline;"><input type="text" class="form-control" value="__PAGE__" onkeydown="javascript:if(event.keyCode==13){var page=(this.value|0);location.href=\&#39;__HREF__\&#39;.replace(\&#39;__PAGE__\&#39;,page);return false;}"><span class="input-group-btn"><button class="btn btn-default" onclick="javascript:var page=(this.previousSibling.value|0);location.href=\&#39;__HREF__\&#39;.replace(\&#39;__PAGE__\&#39;,page);return false;">GO!</button></span></div>');
  1. 使用分頁(yè)頁(yè)碼跳轉(zhuǎn)功能

在視圖檔案中,可以直接使用自訂的分頁(yè)樣式,並實(shí)作頁(yè)碼跳轉(zhuǎn)功能:

<div class="pagination">
????<?php echo $page;?>
</div>

其中,在自訂分頁(yè)樣式中,使用"__PAGE__" 和"__HREF__" 分別表示目前頁(yè)碼和跳躍連結(jié)。在輸入框中輸入跳轉(zhuǎn)頁(yè)碼,點(diǎn)選按鈕即可進(jìn)行頁(yè)碼跳轉(zhuǎn)。

總結(jié)

在ThinkPHP3.2框架中,分頁(yè)頁(yè)碼跳轉(zhuǎn)功能可以透過(guò)在分頁(yè)樣式中新增輸入框和按鈕來(lái)實(shí)現(xiàn)。使用自訂分頁(yè)樣式可以讓分頁(yè)樣式更加美觀,同時(shí)也能實(shí)現(xiàn)更多特定的分頁(yè)需求。

以上是ThinkPHP3.2中分頁(yè)頁(yè)碼跳轉(zhuǎn)功能的實(shí)作與注意事項(xiàng)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276