<?PHP
/**
*防淘宝带省略号的AJAX分页
*@paramdate
*@authorhany
*/
	classAjaxPage{
		private$total;//数据表中总记录数
		private$listRows;//每页显示行数
		private$limit;//分页参数
		private$uri;
		private$pageNum;//总页数
		private$config=array('header'=>"个记录","prev"=>"上一页","next"=>"下一页","first"=>"首页","last"=>"尾页");
		private$adjacents=3;//两侧显示的页码数量.
	
		/**
		*构造函数
		*@paramunkNown$total
		*@paramnumber$listRows
		*@paramstring$pa
		*/
		publicfunction__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();
		}

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

		/**
		*获取URL地址
		*@paramunkNown$pa
		*@returnstring
		*/
		privatefunctiongetUri($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;
		}

		/**
		*获取一个类的私有成员
		*@paramunkNown$args
		*@returnNULL
		*/
		publicfunction__get($args){
			if($args=="limit"){
				return$this->limit;
			}else{
				returnnull;
			}				
		}

		/**
		*首页
		*@returnstring
		*/
		privatefunctionfirst(){
			if($this->page>($this->adjacents+1)){
				return"<ahref='javascript:setPage(\"{$this->uri}&page=1\")'>1</a>&nbsp;";
			}		
			return"";
		}

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

		/**
		*列表
		*@returnstring
		*/
		privatefunctionPagelist(){
			$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.="<aclass='current'>{$this->page}</a>&nbsp;";
				}elseif($i==1){					
					$linkPage.="<ahref='javascript:setPage(\"{$this->uri}"."\")'>{$i}</a>&nbsp;";
				}else{
					$linkPage.="<ahref='javascript:setPage(\"{$this->uri}&page={$i}\")'>{$i}</a>&nbsp;";
				}
			}			
			//省略号
			if($this->page<($this->pageNum-$this->adjacents-1)){
				$linkPage.="<a>...</a>&nbsp;";
			}			
			return$linkPage;
		}

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

		/**
		*总页数
		*@returnstring
		*/
		privatefunctiontotal(){		
		return'共'.$this->pageNum.'页,第'.$this->page.'页&nbsp;&nbsp;&nbsp;';
		}
		
		/**
		*尾页
		*@returnstring
		*/
		privatefunctionlast(){					
			if($this->page<($this->pageNum-$this->adjacents)){				
				return"<ahref='javascript:setPage(\"{$this->uri}&page=".($this->pageNum)."\")'>{$this->pageNum}</a>&nbsp;";
			}	
			return"";					
		}

		/**
		*跳转
		*@returnstring
		*/
		privatefunctiongoPage(){
			return'<inputtype="text"onkeydown="javascript:if(event.keyCode==13){varpage=(this.value>'.$this->pageNum.')?'.$this->pageNum.':this.value;setPage(\''.$this->uri.'&page=\'+page+\'\')}"value="'.$this->page.'"style="width:25px"><inputtype="button"value="GO"onclick="javascript:varpage=(this.prevIoUsSibling.value>'.$this->pageNum.')?'.$this->pageNum.':this.prevIoUsSibling.value;setPage(\''.$this->uri.'&page=\'+page+\'\')">';
		}
		
		
		/**
		*获取分页列表
		*@paramunkNown$display
		*@returnAmbigous<string,unkNown>
		*/
	publicfunctionfpage($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($displayas$index){
				$fpage.=$html[$index];
			}
			return$fpage;
		}

	
	}
	
	
	//实例分页类对象		
		$page=newAjaxPage($total,$pagesize);

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

  1. 基于HTML十秒做出淘宝页面

    十分钟做出一个网页,看似不可思议,下面小编给大家带来了基于HTML十秒做出淘宝页面,只分为两步,代码超级简单,需要的朋友参考下吧

  2. 正则:高亮多个相似关键词,如京东、京东物流、京东商城…

    最近项目遇到一个小需求,就是在一段文字中,高亮几个关键词,例如以下文字:京东是中国一家自营式B2C购物网站,创始人刘强东担任京东集团CEO。旗下设有京东商城、京东金融、拍拍网、京东智能、O2O及海外事业部。2017年1月4日,中国银联宣布京东金融旗下支付公司正式成为银联收单成员机构。2017年4月25日,京东集团宣布正式组建京东物流子集团。

  3. 防淘宝带省略号的AJAX分页

  4. DELPHI 调用淘宝API 例子 IdHTTP1 控件

    总结以上是DEVMAX为你收集整理的DELPHI调用淘宝API例子IdHTTP1控件全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  5. Delphi版本的淘宝接口(TopAPI)开发

    总结以上是DEVMAX为你收集整理的Delphi版本的淘宝接口开发全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  6. 淘宝的接口delphi

    总结以上是DEVMAX为你收集整理的淘宝的接口delphi全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  7. 仿淘宝图片空间 点击文字 出现可编辑文本框 提交ajax数据到后台修改

    总结以上是DEVMAX为你收集整理的仿淘宝图片空间点击文字出现可编辑文本框提交ajax数据到后台修改全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  8. 淘宝弹性布局方案lib-flexible实践

    总结以上是DEVMAX为你收集整理的淘宝弹性布局方案lib-flexible实践全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  9. 实践中的电商前端优化

    总结以上是DEVMAX为你收集整理的实践中的电商前端优化全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部