google分页效果

<?php
include "./include.php";
/*
当前页	总页数	每页大小
*/

//定义当前页
if(isset($_GET['np'])){
$nowPage=$_GET['np'];
}else{
	$nowPage=1;
}

//查询数据库,得到总的记录数
$rs=mysql_query("select count(*) from area;");
$rowNum=mysql_result($rs,0);

//总页数上取整(总记录数/每面的大小)
$Pages=ceil($rowNum/$F_PAGESIZE);


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>仿google分页</title>
<script type="text/javascript" language="JavaScript" src="ajaxUtil.js"></script>
<style type="text/css">
#tab{
	margin:auto;
	padding:auto;
	border-collapse:collapse;
}

#content{
	height:420px;
	width:600px;
	background-color:#FCF;
	border:1px dashed #C63;

}

#pageNum{
	height:20px;
	width:600px;
	background:#999;
	border:1px dashed #C63;
	text-align: center;
}


</style>

<script type="text/javascript" language="javascript">
//-----------------显示页面部分开始-----------------
function initPages(){
	/*
	1、定义当前页		解决在javascript中使用php中定义的变量
	2、定义开始页
	3、定义最终页(结束页
	4、定义总页数)
	*/	
	
	var nowPage=<?php echo $nowPage;  ?>;
	
	//定义开始页
	var startPage=1;
	//定义结束页
	var endPage=<?php echo $Pages;  ?>;
	
	//定义的一个总页数
	var pages=<?php echo $Pages;  ?>
	
	//当总页数大小于11时,设定起始页和结束页
	if(pages>6){
		//设定起始页码
		if(nowPage-5>0){
			//如果当前页-10>0则设置,当起始页=当前页-10
			startPage=nowPage-5;
		}
		
		//设定结束页
		if(nowPage+4<pages){
			//如果当前页+9>总页数,则设定结束页为		当前页+9 
			endPage=nowPage+4;
		}else{
			endPage=pages;	
		}
		
	}
	
	
	var pageNumStr="";
	//判断是否显示上一页
	if(nowPage!=1){
		pageNumStr+="<a href='ajax_google_page.php?np="+(nowPage-1)+"'>上一页</a>";		
		
	}
	
	
	
	
	//for循环读出页码
	for(var i=startPage;i<=endPage;i++){
		//判断是否是当前页,如果是当前页,让页码加粗
		if(nowPage==i){
			//如果当前页,则加粗
			pageNumStr+=" <b>"+i+"</b>";			
		}else{
			pageNumStr+=" <a href='ajax_google_page.php?np="+i+"'>"+i+"</a>";	
			
		}
		
	}
	
	if(nowPage!=pages){
		pageNumStr+="<a href='ajax_google_page.php?np="+(nowPage+1)+"'>下一页</a>";		
		
	}
	
	//将拼装的字符串显示到div中
	$("pageNum").innerHTML=pageNumStr;
	
	//显示数据
	getPageData(nowPage,"content");
		
}


//-----------------显示页面部分结束-----------------

//-----------------显示页面正文开始-----------------
function getPageData(nowPage,objid){
	objectId=objid;
	
	var url="ajax_google_server.php";
	
	var params="nowPage="+nowPage;
	
	get(url,params,processPageDatas);	
	
}

function processPageDatas(xhr){
	//获取显示信息胡位置(div)
	var selobj=$(objectId);
	
	var pageStr=xhr.responseText;
	//将数据写入div
	selobj.innerHTML=pageStr;
	
	
}


//-----------------显示页面正文结束-----------------



//-----------------表格隔行变色开始-----------------
function geHang(trr){
		
	trr.style.background="#C90";
	trr.onmouseout = function(){
		trr.style.background="#FCF";
		
	}
	
}


//-----------------表格隔行变色结束-----------------


</script>


</head>

<body οnlοad="initPages()">
<table id="tab">
  <tr>
    <td><div id="content"></div></td>
  </tr>
  <tr>
    <td><div id="pageNum"></div></td>
  </tr>
</table>
</body>
</html>

两个div用来显示内容和页数编号

内容是ajax获取的

<?php
header("Content-Type:text/html;charset=utf-8");
include_once "./include.php";
$nowPage=$_GET['nowPage'];

$sql="select id,name,code from area limit ".($nowPage-1)*$F_PAGESIZE.",".$F_PAGESIZE;

$rs=mysql_query($sql);

$str="<table border='1'><tr><th width='100px'>id</th><th width='400px'>名称</th><th width='100px'>编号</th></tr>";

while($rows=mysql_fetch_assoc($rs)){
	$str.="<tr onMouseMove='geHang(this)' class='odd'><td width='100px' align='center'>".$rows['id']."</td><td width='400px' align='center'>".$rows['name']."</td><td width='100px' align='center'>".$rows['code']."</td></tr>";		
	
}

	
	$str.="</table>";

	echo $str;
?>


 

使用的js

function get(url1,params,methodName){
  /*
 ajax使用的基本步骤:

 1、初始化ajax引擎
 2、封装url(设定要请求的路径)
 3、打开ajax引擎(同步方式、异步的方式;本次传输使用get还是post)
 4、将要请求的信息通过引擎发送到服务器进行处理
 5、监听服务器返回给ajax引擎的处理状态
 6、判断是否交互完毕,如果交互完毕则取出返回的数
  */	
  //初始化ajax引擎
  var xhr = new XMLHttpRequest();//这种方式只针对ie浏览器,并且ie6以下还有问题。
  var url=url1+"?"+params+"&r="+Math.random();

  //alert(url);
  //打开引擎
  xhr.open("get",url,true);   //readyState=1
 
  //发送请求
  xhr.send(null);   //readyState=2
  
  //监听readyState值的改变,每次改变都会执行下面额函数  
  xhr.onreadystatechange=function (){
	  
	  //如果等于4,表明交互完毕 ,我们可以取出服务器返回的内容
	  if(xhr.readyState==4){
            
	//动态调用方法,为什么说是动态呢?方法的名称是个变量methodName
			methodName(xhr);
			
	  }
	  
  }

}

//$()方法用于方便取出 id="id" 的对象
function $(id){
	
	return document.getElementById(id);
}


 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值