這篇文章主要介紹了PHP+jQuery+Ajax實現分頁效果,以及jPaginate插件的應用
jPaginate是基于jQuery的動感滾動分頁插件,它的表現形式是像分頁的按鈕一樣,非常有意思的是這些按鈕卻可以滾動,可以通過單擊或鼠標滑向點兩側的小箭頭來控制按鈕的前后滾動。
調用jPaginate插件的方法很簡單:
- $(elementID).paginate()
屬性設置
可喜的是,jPaginate提供了很多屬性配置,您可以輕易的定制想要的分頁效果。
設置方法如:
- $(elementID).paginate({
- count:80,
- start:1,
- ... })
count:
數字,總記錄數。
start:
數字,開始顯示的頁數,如:3表示從第3頁開始。
display:
數字,分頁條顯示的頁數,如:5表示一次顯示5個頁碼數。
border:
是否顯示頁碼的邊框。(true/false)
border_color:
設置邊框的顏色,如"#d3d3d3"。
text_color:
設置頁碼的顏色,如"#68ba64"。
background_color:
設置頁碼的背景色,如"#f7f7f7"。
border_hover_color:
設置鼠標滑向頁碼時頁碼邊框的顏色。
text_hover_color:
設置鼠標滑向頁碼時頁碼的顏色。
background_hover_color:
設置鼠標滑向頁碼時頁碼背景的顏色。
images:
是否顯示頁碼導航箭頭(方向箭頭)(true/false)
mouse:
設置為'press'時,當鼠標滑向導航箭頭時,頁碼隨之滾動;設置為'slide'時,鼠標單擊一次導航箭頭頁碼滾動一次。
onChange:
當單擊頁碼時,回調函數.
實例應用:PHP+jQuery實現Ajax分頁效果
首先準備index.php,該頁面用來分頁展示一個博客文章列表。
1、引用JS:
- <script type="text/javascript" src="js/jquery.js"></script>
- <script type="text/javascript" src="js/jquery.paginate.js"></script>
- <script type="text/javascript">
- $(function(){
- $("#demo").paginate({
- count : <?php echo $page;?>,
- start : 1,
- display : 5,
- border : true,
- border_color : '#BEF8B8',
- text_color : '#79B5E3',
- background_color : '#E3F2E1',
- border_hover_color : '#68BA64',
- text_hover_color : '#2573AF',
- background_hover_color : '#CAE6C6',
- images : false,
- mouse : 'press',
- onChange : function(page){
- $("#pagetxt").load("article.php?id="+page);
- }
- });
- });
- </script>
注意,關于插件的屬性設置,上文已詳細介紹,屬性count通過PHP計算出總頁數$page,該參數由article.php得出。還要說明的是屬性onChange:當點擊頁碼時,調用函數,該函數實現了異步提交頁碼參數給article.php來處理,article.php通過讀取數據庫里的表書籍,并把得到的文章列表結果而返回頁面,這就是Ajax。當然我這里只是做簡單的演示,如果需要更多異步效果,可以參照jQuery使用文檔。
2、引用CSS:
jPaginate官方提供了導航條樣式,你也可以自己寫個非??岬臉邮健?/p>
- <link rel="stylesheet" type="text/css" href="style.css" />
3、index.php初始頁面。
必須要顯示一個初始的文章列表,代碼如下
- <div class="demo">
- <h4>Demo 3: Php+jQuery實現AJAX 分頁效果</h4>
- <div id="pagetxt">
- </div>
- <div id="demo"></div>
- </div>
在ID為pagetxt的DIV內加入PHP代碼:
- $query=$db->select("article","id,title,pubdate","cata=1 order by id desc limit 0,5");
- while($row=$db->fetch_array($query)){
- $pubdate=date("Y-m-d",$row[pubdate]);
- echo "<p><span>$pubdate</span><a href='view-blog-".$row[id].".html' target='_blank'>
- ".$row[title]."</a></p>";
4、article.php代碼。
該代碼用來獲取index.php提交過來的頁碼,查詢數據庫,并將輸出結果。代碼如下:
- include_once("common.php"); //連接數據庫專用文件
- $id=$_GET['id']; //獲取頁碼
- $result = $db->select("article", "id", "cata=1");
- $total = $db->db_num_rows($result); //總記錄數
- $pagesize=5; //每頁顯示數
- $page=ceil($total/$pagesize); //總頁數
- if(isset($id)){
- $startPage=($id-1)*$pagesize;
- $query=$db->select("article","id,title,pubdate","cata=1 order by id desc limit $startPage,
- $pagesize");
- while($row=$db->fetch_array($query)){
- $pubdate=date("Y-m-d",$row[pubdate]);
- echo "<p><span>$pubdate</span><a href='view-blog-".$row[id].".html' target='_blank'>
- ".$row[title]."</a></p>"; //輸出文章列表
- }
- }
以上介紹了PHP+jQuery實現Ajax分頁效果中jPaginate插件的應用,希望對大家的學習有所幫助。
新聞熱點
疑難解答