改写thinkphp内置分页类,使之支持ajax分页

在网上下了一个在原thinkphp分页类基础上添加了多种样式的分页类,但是项目要使用ajax分页,所以在它的基础上做了一点小改动,以支持ajax分页

类文件及css文件下载

page.class.php.rar

演示代码

/Lib/Action/test2Action.class.php

 

PHP代码
  1. <?php   
  2. class test2Action extends Action{   
  3.     public function index()   
  4.     {   
  5.         $this->display();   
  6.     }   
  7.   
  8.     public function ajax()   
  9.     {   
  10.         if($_GET[‘do’]==‘list’){   
  11.             $_GET[‘page’]=$_POST[‘page’];   
  12.             $perapective_=D(‘Perapective’);   
  13.             import("@.ORG.Page"); //导入分页类      
  14.             C(‘PAGE_NUMBERS’,’10’); //Discuz分布是显示前后共10页的按钮   
  15.             C(‘VAR_PAGE’,‘page’);   
  16.             C(‘AJAX_FUNCTION’,‘getlist’);   
  17.             $total = $perapective_->count();   
  18.             $pnew Page($total,5);   
  19.   
  20.             if($data=$perapective_->findAll(,,‘pid desc’,$p->firstRow.‘,’.$p->listRows)){   
  21.                 $status=0;   
  22.                 $info[‘page’] = $p->show();   
  23.                 $info[‘style’]="manu";//分页样式   
  24.             }else{   
  25.                 $status=1;   
  26.             }   
  27.             $this->ajaxReturn($data,$info,$status);    
  28.         }   
  29.     }   
  30. }   
  31. ?>  

 

前台模板文件:

 

XML/HTML代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <title>ajax测试</title>  
  5.   
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  7. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />  
  8. <SCRIPT LANGUAGE="JavaScript" src="/public/js/jquery.js"></SCRIPT>  
  9. <style>  
  10. body{font-size:12px;}   
  11. a:link,a:visited,a:active{ color:#000; text-decoration:none;}   
  12. a:hover{ color:#87B600; text-decoration:none;}   
  13. #box{margin:20px auto;width:600px;border:1px solid #E6E6E6}   
  14. #menu{clear:both;float:right;}   
  15. #menu ul{list-style:none;clear:both;}   
  16. #menu ul li{float:left;margin:3px;width:70px;text-align:center;}   
  17. #listbox{margin:10px auto;width:580px;display:none;}   
  18. #listbox ul{list-style:none;}   
  19. #listbox ul li{color:blue;padding-top:10px;}   
  20. #page{clear:both;text-align:left;padding-left:35px;}   
  21. .clear{clear:both;}   
  22. </style>  
  23. <link rel="stylesheet" type="text/css" href="/public/css/style2.css" />  
  24. </head>  
  25. <body>  
  26.   
  27. <div id="box">  
  28.     <div id="menu">  
  29.         <ul>  
  30.                
  31.         </ul>  
  32.            
  33.     </div>  
  34.     <div id="listbox"></div>  
  35.        
  36.     <div class="clear"></div>  
  37. </div>  
  38. <SCRIPT LANGUAGE="JavaScript">  
  39. <!–   
  40.     function getlist(page){   
  41.         url="/test2/ajax/do/list";   
  42.         var html="";   
  43.         $.post(url,{page:page},function(data){   
  44.             list=data.data;   
  45.             page=data.info.page;   
  46.             style=data.info.style;   
  47.             status=data.status;   
  48.             if(status==0){   
  49.                 html+="<ul>";   
  50.                 for(var i = 0; i < list.length; i++){   
  51.                     html+="<li>"+list[i].title+"</li>"   
  52.                 }   
  53.                 html+="</ul>";   
  54.                 html+="<div id=‘page’ class=‘"+style+"’>"+page+"</div>";   
  55.             }else{   
  56.                 html+="无数据!";   
  57.             }   
  58.             $("#listbox").html(html);   
  59.             $("#listbox").show();   
  60.         },"json");   
  61.     }   
  62.     getlist(1);   
  63. //–>  
  64. </SCRIPT>  
  65. </body>  

 

效果图

ddd.jpg

改写thinkphp内置分页类,使之支持ajax分页》有6个想法

  1. jkb23

    C(‘PAGE_NUMBERS’,’10’); //Discuz分布是显示前后共10页的按钮
    C(‘VAR_PAGE’,’page’);
    C(‘AJAX_FUNCTION’,’getlist’);
    这几行代码是什么意思?请教一下

  2. jkb23

    我试了 为什么不成功呢 那个更改后的page.class.php是将原来的page.class.php覆盖吗
    请博主指教!

评论已关闭。