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);
}


 

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章