PHP分页类分享
分享一个常用的php分页类。有三种表现形式,具体效果图如下:
(1)
(2)
(3)
该php分页类的具体代码以及使用方法如下:
/** *PHP分页类 * *show(2) 1 ... 62 63 64 65 66 67 68 ... 150 *分页样式 *#page{font:12px/16px arial} *#page span{float:left;margin:0px 3px;} *#page a{float:left;margin:0 3px;border:1px solid #ddd;padding:3px *7px;text-decoration:none;color:#666} *#page a.now_page,#page a:hover{color:#fff;background:#05c} */ class Pager{ public $first_row;//起始行数 public $list_rows;//列表每页显示行数 protected $total_pages;//总页数 protected $total_rows;//总行数 protected $now_page;//当前页数 protected $method="defalut";//处理情况 Ajax分页 Html分页(静态化时) 普通get方式 protected $parameter=""; protected $page_name;//分页参数的名称 protected $ajax_func_name; public $plus=3;//分页偏移量 protected $url; /** *构造函数 * *@param unknown_type $data */ public function __construct($data=array()){ $this->total_rows=$data["total_rows"]; $this->parameter=!empty($data["parameter"])?$data["parameter"]:""; $this->list_rows=!empty($data["list_rows"])&&$data["list_rows"]<=100?$data["list_rows"]:15; $this->total_pages=ceil($this->total_rows / $this->list_rows); $this->page_name=!empty($data["page_name"])?$data["page_name"]:"page"; $this->ajax_func_name=!empty($data["ajax_func_name"])?$data["ajax_func_name"]:""; $this->method=!empty($data["method"])?$data["method"]:""; /* 当前页面 */ if(!empty($data["now_page"])){ $this->now_page=intval($data["now_page"]); }else{ $this->now_page=!empty($_GET[$this->page_name])?intval($_GET[$this->page_name]):1; } $this->now_page=$this->now_page<=0?1:$this->now_page; if(!empty($this->total_pages)&&$this->now_page>$this->total_pages){ $this->now_page=$this->total_pages; } $this->first_row=$this->list_rows*($this->now_page-1); } /** *得到当前连接 * *@param * $page *@param * $text *@return string */ protected function _get_link($page,$text){ switch ($this->method){ case "ajax" : $parameter=""; if($this->parameter){ $parameter=",".$this->parameter; } return "<a href="javascript:void(0)">".$text."</a>".""; break; case "html" : $url=str_replace("?",$page,$this->parameter); return "<a href="".$url."">".$text."</a>"; break; default : return "<a href="".$this->_get_url($page)."">".$text."</a>"; break; } } /** *设置当前页面链接 */ protected function _set_url(){ $url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"],"?")?"":"?").$this->parameter; $parse=parse_url($url); if(isset($parse["query"])){ parse_str($parse["query"],$params); unset($params[$this->page_name]); $url=$parse["path"]."?".http_build_query($params); } if(!empty($params)){ $url.="&"; } $this->url=$url; } /** *得到$page的url * *@param $page 页面 *@return string */ protected function _get_url($page){ if($this->url === NULL){ $this->_set_url(); } // $lable=strpos("&",$this->url) === FALSE?"":"&"; return $this->url.$this->page_name."=".$page; } /** *得到第一页 * *@return string */ public function first_page($name="第一页"){ if($this->now_page>5){ return $this->_get_link("1",$name); } return ""; } /** *最后一页 * *@param * $name *@return string */ public function last_page($name="最后一页"){ if($this->now_page<$this->total_pages-5){ return $this->_get_link($this->total_pages,$name); } return ""; } /** *上一页 * *@return string */ public function up_page($name="上一页"){ if($this->now_page!=1){ return $this->_get_link($this->now_page-1,$name); } return ""; } /** *下一页 * *@return string */ public function down_page($name="下一页"){ if($this->now_page<$this->total_pages){ return $this->_get_link($this->now_page+1,$name); } return ""; } /** *分页样式输出 * *@param * $param *@return string */ public function show($param=1){ if($this->total_rows<1){ return ""; } $className="show_".$param; $classNames=get_class_methods($this); if(in_array($className,$classNames)){ return $this->$className(); } return ""; } protected function show_2(){ if($this->total_pages!=1){ $return=""; $return.=$this->up_page("<"); for($i=1;$i<=$this->total_pages;$i++){ if($i==$this->now_page){ $return.="<a class="now_page">$i</a>"; }else{ if($this->now_page-$i>=4&&$i!=1){ $return.="<span class="pageMore">...</span>"; $i=$this->now_page-3; }else{ if($i>=$this->now_page+5&&$i!=$this->total_pages){ $return.="<span>...</span>"; $i=$this->total_pages; } $return.=$this->_get_link($i,$i); } } } $return.=$this->down_page(">"); return $return; } } protected function show_1(){ $plus=$this->plus; if($plus+$this->now_page>$this->total_pages){ $begin=$this->total_pages-$plus*2; }else{ $begin=$this->now_page-$plus; } $begin=($begin>=1)?$begin:1; $return=""; $return.=$this->first_page(); $return.=$this->up_page(); for($i=$begin;$i<=$begin+$plus*2;$i++){ if($i>$this->total_pages){ break; } if($i==$this->now_page){ $return.="<a class="now_page">$i</a>"; }else{ $return.=$this->_get_link($i,$i); } } $return.=$this->down_page(); $return.=$this->last_page(); return $return; } protected function show_3(){ $plus=$this->plus; if($plus+$this->now_page>$this->total_pages){ $begin=$this->total_pages-$plus*2; }else{ $begin=$this->now_page-$plus; } $begin=($begin>=1)?$begin:1; $return="总计 ".$this->total_rows." 个记录分为 ".$this->total_pages." 页,当前第 ".$this->now_page." 页 "; $return.=",每页 "; $return.="<input type="text" value="".$this->list_rows."" id="pageSize" size="3"> "; $return.=$this->first_page(); $return.=$this->up_page(); $return.=$this->down_page(); $return.=$this->last_page(); $return.="<select onchange="".$this->ajax_func_name."(this.value)" id="gotoPage">"; for($i=$begin;$i<=$begin+10;$i++){ if($i>$this->total_pages){ break; } if($i==$this->now_page){ $return.="<option selected="true" value="".$i."">".$i."</option>"; }else{ $return.="<option value="".$i."">".$i."</option>"; } } $return.="</select>"; return $return; } }
类使用示例:
###处理html静态化页面分页的情况### # method 处理环境 设置为 html # parameter 为静态页面参数 www.Alixixi.com/20-0-0-0-40-?.html 注意问号 # ?问号的位置会自动替换为去向页码 # now_page 当前页面(静态页面获取不到当前页面所以只有你传入) $params=array( "total_rows"=>100,#(必须) "method" =>"html",#(必须) "parameter" =>"www.Alixixi.com/20-0-0-0-40-?.html", #(必须) "now_page" =>$_GET["p"], #(必须) "list_rows" =>10,#(可选) 默认为15 ); $page=new Pager($params); echo $page->show(1); #<a href="www.Alixixi.com/20-0-0-0-40-2.html">2</a> ###处理ajax分页的情况### # method 处理环境 设置为 ajax # ajax_func_name ajax分页跳转页面的javascript方法 # parameter ajax_func_name后面的附带参数 默认为空 # now_page 不到当前页面所以只有你传入 $params=array( "total_rows"=>100, "method" =>"ajax", "ajax_func_name" =>"goToPage", "now_page" =>1, #"parameter" =>""jiong","username"", ); $page=new Pager($params); echo $page->show(1); #<a href="javascript:void(0)" >7</a> #添加了parameter<a href="javascript:void(0)" >6</a>
您可能感兴趣的文章
- 在php中分别使用curl的post提交数据的方法和get获取网页数据的方法总结
- PHP分析文件头信息判断上传文件的类型
- php判断变量类型常用方法
- PHP 利用 Curl Functions 实现多线程抓取网页和下载文件
- php控制请求页面浏览器缓存
- PHP判断浏览器类型
- PHP Curl批量多线程打开网址的类
- php通过socket获取网页内容的简单示例

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Penggunaan pulangan dalam bahasa C ialah: 1. Untuk fungsi yang jenis nilai pulangannya adalah batal, anda boleh menggunakan pernyataan pulangan untuk menamatkan pelaksanaan fungsi lebih awal 2. Untuk fungsi yang jenis nilai pulangannya tidak batal, fungsi bagi penyataan pulangan adalah untuk menamatkan pelaksanaan fungsi Hasilnya dikembalikan kepada pemanggil 3. Menamatkan pelaksanaan fungsi lebih awal, kita boleh menggunakan penyataan pulangan untuk menamatkan pelaksanaan fungsi lebih awal jika fungsi tidak mengembalikan nilai.

Kod sumber: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}akhirnya{x=3;}}}# Output Output kod di atas hanya boleh membuat kesimpulan: return dilaksanakan sebelum akhirnya. Mari kita lihat apa yang berlaku pada tahap bytecode. Yang berikut memintas sebahagian kod bait kaedah case1 dan membandingkan kod sumber untuk menganotasi maksud setiap arahan dalam

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

Melaksanakan paging data dan pengoptimuman paparan dalam projek Vue, apabila halaman perlu memaparkan sejumlah besar data, pengoptimuman data dan paparan biasanya perlu dilakukan untuk meningkatkan pengalaman pengguna laksanakan halaman data dan pengoptimuman paparan , dan berikan contoh kod khusus. 1. Paging data Paging data merujuk kepada membahagikan sejumlah besar data kepada berbilang halaman mengikut peraturan tertentu dan memaparkannya pada halaman. Anda boleh menggunakan langkah berikut untuk melaksanakan halaman data dalam projek Vue: Tentukan sumber data Pertama, tentukan sumber data yang mengandungi semua data.

Bahagian 1: Langkah Penyelesaian Masalah Awal Menyemak Status Sistem Apple: Sebelum menyelidiki penyelesaian yang rumit, mari kita mulakan dengan asas. Masalahnya mungkin tidak terletak pada peranti anda; Lawati halaman Status Sistem Apple untuk melihat sama ada AppStore berfungsi dengan betul. Jika terdapat masalah, anda hanya boleh menunggu Apple membetulkannya. Semak sambungan Internet anda: Pastikan anda mempunyai sambungan internet yang stabil kerana isu "Tidak dapat menyambung ke AppStore" kadangkala boleh dikaitkan dengan sambungan yang lemah. Cuba tukar antara Wi-Fi dan data mudah alih atau tetapkan semula tetapan rangkaian (Umum > Tetapkan Semula > Tetapkan Semula Tetapan Rangkaian > Tetapan). Kemas kini versi iOS anda:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Gula sintaks persediaan Vue3.2 ialah gula sintaks masa kompilasi yang menggunakan gabungan API dalam satu komponen fail (SFC) untuk menyelesaikan persediaan yang rumit dalam Vue3.0 Pembolehubah, fungsi dan kandungan yang diisytiharkan yang diperkenalkan oleh import didedahkan melalui pulangan, supaya ia boleh digunakan dalam Vue3.0 Masalah dalam penggunaan 1. Tidak perlu mengembalikan pembolehubah yang diisytiharkan, fungsi dan kandungan yang diperkenalkan semasa penggunaan Anda boleh menggunakan gula sintaksis //import kandungan yang diperkenalkan import{getToday }from'./utils'//variable constmsg='Hello !'//function function
