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

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

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

Apr 17, 2023 am 09:48 AM

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

一、ThinkPHP3.2的分頁功能

在ThinkPHP3.2框架中,可以通過以下方法實(shí)現(xiàn)簡單的分頁功能:

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

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

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

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

二、自定義分頁樣式

在ThinkPHP3.2框架中,可以通過以下方法自定義分頁樣式:

  1. 定義分頁樣式

在當(dāng)前項(xiàng)目中創(chuàng)建一個(gè)名為Page.class.php的文件,將以下代碼復(fù)制到該文件中:

<?php
namespace Think;
class Page {
    // 定義分頁樣式
    private $rollPage   = 5; // 分頁欄每頁顯示的頁數(shù)
    private $lastSuffix = true; // 是否顯示最后一頁的頁碼后綴
    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;?//?每頁顯示行數(shù)
????private?$totalPages?=?0;?//?總頁數(shù)
????private?$nowPage????=?1;?//?當(dāng)前頁數(shù)
????private?$firstRow???=?1;?//?起始行數(shù)
????private?$varPage????=?'page';?//?分頁變量名
????private?$p??????????=?'p';?//?分頁參數(shù)名
????private?$url????????=?'';?//?當(dāng)前鏈接URL
????private?$baseUrl????=?'';?//?分頁基礎(chǔ)URL
????private?$params?????=?array();?//?分頁跳轉(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);?//總頁數(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);
????}
????//?顯示分頁
????public?function?show($url='')?{
????????if?(0?==?$this->totalRows)?{
????????????return?'';
????????}

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

????????//?分頁處理
????????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,'上一頁','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.'頁','');
????????????????????}else{
????????????????????????break;
????????????????????}
????????????????}else{
????????????????????if($page?>?0?&&?$this->rollPage?< $this->totalPages){
????????????????????????$this->addUrl($linkPage,$page,'第'.$page.'頁','');
????????????????????}
????????????????}
????????????}
????????????if($this->nowPage?< $this->totalPages){
????????????????$this->addUrl($linkPage,$this->nowPage+1,'下一頁','class="next"');
????????????}
????????????if($this->lastSuffix){
????????????????$this->addUrl($linkPage,$this->totalPages,'最后一頁');
????????????}
????????????$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.'頁','');
????????????????}
????????????}
????????????$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;
????}
????//?添加分頁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. 使用自定義分頁樣式

在控制器中引入自定義分頁樣式,并以以下方式使用:

//?引入分頁類
import("Think.Page");
//?查詢數(shù)據(jù)總數(shù)
$count?=?M('User')->where($where)->count();
//?實(shí)例化分頁類
$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%');
//?查詢數(shù)據(jù)
$list?=?M('User')->where($where)->order('id?desc')->limit($Page->firstRow.','.$Page->listRows)->select();
//?輸出分頁html
$this->assign('page',$Page->show());

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

在ThinkPHP3.2框架中,分頁頁碼跳轉(zhuǎn)功能通過在分頁樣式中添加輸入框和按鈕實(shí)現(xiàn)。添加頁碼跳轉(zhuǎn)功能的步驟如下:

  1. 修改分頁樣式

在自定義分頁樣式中添加一個(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. 使用分頁頁碼跳轉(zhuǎn)功能

在視圖文件中,可以直接使用自定義的分頁樣式,并實(shí)現(xiàn)頁碼跳轉(zhuǎn)功能:

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

其中,在自定義分頁樣式中,使用 "__PAGE__" 和 "__HREF__" 分別表示當(dāng)前頁碼和跳轉(zhuǎn)鏈接。在輸入框中輸入跳轉(zhuǎn)頁碼,點(diǎn)擊按鈕即可進(jìn)行頁碼跳轉(zhuǎn)。

總結(jié)

在ThinkPHP3.2框架中,分頁頁碼跳轉(zhuǎn)功能可以通過在分頁樣式中添加輸入框和按鈕實(shí)現(xiàn)。使用自定義分頁樣式可以使分頁樣式更加美觀,同時(shí)也可以實(shí)現(xiàn)更多特定的分頁需求。

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

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集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276