防淘宝带省略号的AJAX分页

<?php
/**
 * 防淘宝带省略号的AJAX分页
 * @param date 
 * @author hany
 */
	class AjaxPage {
		private $total; //数据表中总记录数
		private $listRows; //每页显示行数
		private $limit;  //分页参数
		private $uri;  
		private $pageNum; //总页数
		private $config=array(‘header‘=>"个记录", "prev"=>"上一页", "next"=>"下一页", "first"=>"首 页", "last"=>"尾 页");
		private $adjacents =3; //两侧显示的页码数量.

		/**
		 * 构造函数
		 * @param unknown $total
		 * @param number $listRows
		 * @param string $pa
		 */
		public function __construct($total, $listRows=10, $pa=""){
			$this->total=$total;
			$this->listRows=$listRows;
			$this->uri=$this->getUri($pa);
			$this->page=!empty($_GET["page"]) ? intval($_GET["page"]) : 1;  //当前页数
			$this->pageNum=ceil($this->total/$this->listRows);
			$this->limit=$this->setLimit();
		}

		/**
		 * 设置分页偏移量
		 * @return string
		 */
		private function setLimit(){
			return "Limit ".($this->page-1)*$this->listRows.", {$this->listRows}";
		}

		/**
		 * 获取url地址
		 * @param unknown $pa
		 * @return string
		 */
		private function getUri($pa){
			$url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], ‘?‘)?‘‘:"?").$pa;
			//解析 URL,返回其组成部分
			$parse=parse_url($url);
			//将字符串解析成多个变量 
			if(isset($parse["query"])){
				parse_str($parse[‘query‘],$params);
				unset($params["page"]);  //去除url里面的page
				$url=$parse[‘path‘].‘?‘.http_build_query($params);
			}

			return $url;
		}

		/**
		 * 获取一个类的私有成员
		 * @param unknown $args
		 * @return NULL
		 */
		public function __get($args){
			if($args=="limit"){
				return $this->limit;
			}else{
				return null;
			}
		}

		/**
		 * 首页
		 * @return string
		 */
		private function first(){
			if($this->page >($this->adjacents+1)) {
				return "<a  href=‘javascript:setPage(\"{$this->uri}&page=1\")‘>1</a>&nbsp;";
			}
			return "";
		}

		/**
		 * 上一页
		 * @return string
		 */
		private function prev(){
			if($this->page == 1) {
				return "<a>{$this->config["prev"]}</a>&nbsp;";
			}elseif($this->page == 2) {
				return "<a href=‘javascript:setPage(\"{$this->uri}"."\")‘>{$this->config["prev"]}</a>&nbsp;";
			}else {
				return "<a href=‘javascript:setPage(\"{$this->uri}&page=".($this->page-1)."\")‘>{$this->config["prev"]}</a>&nbsp;";
			}
		}

		/**
		 * 列表
		 * @return string
		 */
		private function pageList(){
			$linkPage = "";
			//省略号
			if($this->page >($this->adjacents+2)) {
				$linkPage.= "<a>...</a>&nbsp;";
			}
			// pages
			$pmin = ($this->page>$this->adjacents) ? ($this->page-$this->adjacents) : 1;
			$pmax = ($this->page<($this->pageNum-$this->adjacents)) ? ($this->page+$this->adjacents) : $this->pageNum;
			for($i=$pmin; $i<=$pmax; $i++) {
				if($i==$this->page) {
					 $linkPage.="<a class=‘current‘>{$this->page}</a>&nbsp;";
				}elseif($i==1) {
					 $linkPage.="<a href=‘javascript:setPage(\"{$this->uri}"."\")‘>{$i}</a>&nbsp;";
				}else {
					 $linkPage.="<a href=‘javascript:setPage(\"{$this->uri}&page={$i}\")‘>{$i}</a>&nbsp;";
				}
			}
			//省略号
			if($this->page<($this->pageNum-$this->adjacents-1)) {
				$linkPage.= "<a>...</a>&nbsp;";
			}
			return $linkPage;
		}

		/**
		 * 下一页
		 * @return string
		 */
		private function next(){
			if($this->page<$this->pageNum) {
				 return "<a href=‘javascript:setPage(\"{$this->uri}&page=".($this->page+1)."\")‘>{$this->config["next"]}</a>&nbsp;";
			}else {
				 return "<a>{$this->config["next"]}</a>&nbsp;";
			}
		}

		/**
		 * 总页数
		 * @return string
		 */
		private function total(){
		    return ‘共‘.$this->pageNum.‘页,第‘.$this->page.‘页&nbsp;&nbsp;&nbsp;‘;
		}

		/**
		 * 尾页
		 * @return string
		 */
		private function last(){
			if($this->page<($this->pageNum-$this->adjacents)) {
				return "<a href=‘javascript:setPage(\"{$this->uri}&page=".($this->pageNum)."\")‘>{$this->pageNum}</a>&nbsp;";
			}
			return "";
		}

		/**
		 * 跳转
		 * @return string
		 */
		private function goPage(){
			return ‘<input type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>‘.$this->pageNum.‘)?‘.$this->pageNum.‘:this.value;setPage(\‘‘.$this->uri.‘&page=\‘+page+\‘\‘)}" value="‘.$this->page.‘" style="width:25px"><input type="button" value="GO" onclick="javascript:var page=(this.previousSibling.value>‘.$this->pageNum.‘)?‘.$this->pageNum.‘:this.previousSibling.value;setPage(\‘‘.$this->uri.‘&page=\‘+page+\‘\‘)">‘;
		}

		/**
		 * 获取分页列表
		 * @param unknown $display
		 * @return Ambigous <string, unknown>
		 */
	    public function fpage($display=array(0,1,2,3,4,5)){
		    $html[0]=$this->total();
			$html[1]=$this->prev();
			$html[2]=$this->first();
			$html[3]=$this->pageList();
			$html[4]=$this->last();
			$html[5]=$this->next();
			$fpage=‘‘;
			foreach($display as $index){
				$fpage.=$html[$index];
			}
			return $fpage;
		}

	}

	//实例分页类对象
		$page = new AjaxPage($total,$pagesize);
时间: 2024-10-08 16:09:22

防淘宝带省略号的AJAX分页的相关文章

《旅行青蛙》登陆淘宝“带货”,马云不差钱,干嘛选过气手游?

明天,5月9日<旅行青蛙>国内版将以"小游戏"的形式登陆手机淘宝. 结果,今天书乐就被北京商报和IT时报问了一轮又一轮,难道阿里又一次想要做游戏大佬吗?<旅行青蛙>还能火吗? 答案很简单,一定会火,只是火的方式不一样了.以下是书乐的若干分析,你看看对不对: 一  旅行青蛙能带货,特产什么的只是起手式? 毫无疑问,旅行青蛙能够寄送明信片和要带一些特定的装备之类的设定,在中国化,进入中国地图以后,可以直接变成淘宝的带货渠道. 此外呢,带点优惠卷或许是初期的淘宝引流方

JS实现带省略号的长分页显示

// 刷新|生成分页信息 function refreshPageInfo(data, pageIndex) { var pageSize = data.pageCount pagingInfo.html('') var li = $('<li><a data="1">«</a></li>') pagingInfo.append(li) // 总页数小于等于10页,全部显示 if (pageSize <= 10) { for (va

python爬取ajax动态生成的数据 以抓取淘宝评论为例子

在学习python的时候,一定会遇到网站内容是通过ajax动态请求.异步刷新生成的json数据的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据. 至于读取静态网页内容的方式,有兴趣的可以查看博客内容. 这里我们以爬取淘宝评论为例子讲解一下如何去做到的. 这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url) 二 获取该ajax请求返回的json数据 三 使用python解析json数据 四

关于微信屏蔽淘宝页面的解决方法(转)

今天有一位行业人士爆料:“阿里屏蔽微信内访问淘宝天猫的技术,被突破了.” 顺着行业人士所提供的链接,笔者亲自试了一番.发现某微信公众号所导向的链接网址跟淘宝/天猫没有直接的关系,但是整个交易过程,不管是从选购还是到支付,的确是在阿里体系下完成的. 对于这种现象,笔者向两位拥有编程技术背景的朋友咨询了一番,得到比较一致的反馈:他们在网页里面内嵌了“iframe ”,再直白一点的意思就是,“页面里面嵌入了另一个页面 ”,代码如下: <iframe src=“http://detail.m.tmall

基于Bootstrap仿淘宝分页控件实现

.header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { text-align: center; margin-top: 20px; margin-left: 10px; margin-bottom: 20px } a { cursor: pointer; text-decoration: none; color: gray } a:hover { text

其实你可以通过淘宝尽孝心:带你认识淘宝尽孝神器

其实你可以通过淘宝尽孝心:带你认识淘宝尽孝神器 花生网讯:孝敬父母是当下很多年轻人的一大难题.但自从有了淘宝,这一难题貌似有了很好的解决之道.这里就介绍一个现代孝子是如何通过淘宝为自己父母挑选出合心意的礼物的故事. 电子设备&电器篇: iPad(iPad Mini) 永远的推荐礼物Top 1.我父母操作电脑非常困难,尤其是键盘,偶尔输个验证码都异常痛苦.自从有了iPad,几乎不需要我指导,看电影.聊QQ.看新闻等等日常功能自然学会.特别是QQ,他们可以把我的QQ号当成语音邮箱投递关心,我看到了就

.net淘宝客基础api 分页查询

1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Linq; 5 using System.Web; 6 using Top.Api; 7 using Top.Api.Request; 8 using Top.Api.Response; 9 10 namespace MvcWebApp.DataBase 11 { 12 public class TaoD

JQuery仿最新淘宝网首页带箭头幻灯片,JQuery轮播图

JQuery代码 <script type="text/javascript"> $(function() { var $banner = $('.banner'); var $banner_ul = $('.banner-img'); var $btn = $('.banner-btn'); var $btn_a = $btn.find('a') var v_width = $banner.width(); var page = 1; var timer = null;

Angular+Bootstrap实现分页(带省略号)

前言 前几天用Angularjs写一个后台管理界面时,需要写分页,自己懒得写于是想在网上搜索一个带省略号的插件,竟然没找到,那没办法就自己写吧 效果图 话不多说,直接上代码 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <link rel="stylesheet" href=