欢迎访问钢琴花园:www.pianohl.com
  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. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>帝国cms使用灵动标签调用文章列表并使用JAVASCRIPT分页</title> 
  6. <script src="css/page.js" type="text/javascript"></script> 
  7. </head> 
  8.   
  9. <body> 
  10. <div class="content"> 
  11.     <ul id="list" style="display:none;"> 
  12.         [e:loop={'SELECT newstime , titleurl , title , smalltext FROM phome_ecms_news',0,24,0}] 
  13.         <?  
  14.         $monthArr = array("01"=>"Jan.","02"=>"Feb.","03"=>"Mar.","04"=>"Apr.","05"=>"May.","06"=>"Jun.","07"=>"July.","08"=>"Aug.","09"=>"Sept.","10"=>"Oct.","11"=>"Nov.","12"=>"Dec."); 
  15.         $mtime = date("m",$bqr[newstime]);  
  16.         ?> 
  17.         <li> 
  18.         <a href="<?=$bqsr[titleurl]?>" title="<?=$bqsr[title]?>" target="_blank">[<span><?=date("d",$bqr[newstime])?></span>][<span><?=$monthArr[$mtime]?></span>][<span><?=date("Y",$bqr[newstime])?></span>]--<span><?=$bqsr[title]?></span></a> 
  19.         <span><?=$bqsr[smalltext]?></span> 
  20.         </li>  
  21.         [/e:loop] 
  22.     </ul> 
  23.     <ul id="list2"></ul> 
  24.     <script language="javascript"> 
  25.         var pager = new ETNGpager('mylist','mylist2',5,5);//5为每页显示条数。10为导航显示菜单数 
  26.         var curP = 1
  27.         page() 
  28.         function page(i){ 
  29.         curP =(curP>pager.cntP)?1:curP; 
  30.         if(i){ 
  31.         curP = n =i; 
  32.         }else{ 
  33.         n = curP++; 
  34.         } 
  35.         pager.curP = (n>pager.cntP)?pager.cntP:n; 
  36.         pager.create(); 
  37.         } 
  38.     </script> 
  39. </div> 
  40. </body> 
  41. </html> 

page.js代码如下:

  1. <!-- 
  2. var ETNGpager = function( srcName, dstName, cntPP, cntPS ) 
  3. this.srcName = srcName; 
  4. this.dstName = dstName; 
  5. this.curP = 1;//默认当前页为第一页 
  6. this.cntPP = cntPP || 2;//默认每页两条纪录 
  7. this.cntPS = cntPS || 3;//默认每页显示5个分页上下文 
  8. this.items = []; 
  9. this.showPNP = true;/*显示上下页链接*/ 
  10. this.showType = true;/*滑动分页*/ 
  11. this.result = {pagedata:[],pagebar:'',limit:[0,0],report:''}; 
  12. this.parse();/*总纪录数*/ 
  13. ETNGpager.prototype.page = function (){ 
  14. this.cntP = Math.ceil(this.cntR/this.cntPP); 
  15. /*总页数*/ 
  16. this.cntS = Math.ceil(this.cntP/this.cntPS); 
  17. /*总段数*/ 
  18. this.curS = Math.ceil(this.curP/this.cntPS); 
  19. /*当前段*/ 
  20. this.preP = this.curP -1;/*上一页*/ 
  21. this.nextP = this.curP +1;/*下一页*/ 
  22. this.preS = this.curS -1;/*上一段*/ 
  23. this.nextS = this.curS +1;/*下一段*/ 
  24. this.startR = (this.curP -1)*this.cntPP + 1;/*起始纪录*/ 
  25. this.endR = (this.curP*this.cntPP >this.cntR)?this.cntR:this.curP*this.cntPP;/*结束纪录*/ 
  26. this.result['pagedata']=[]; 
  27. if(this.showType){ 
  28. this.perSide = Math.floor(this.cntPS/2); 
  29. this.startP = (this.curP > this.perSide)?(this.curP - this.perSide):1; 
  30. this.endP = (this.startP + this.cntPS)>this.cntP?this.cntP:(this.startP + this.cntPS); 
  31. }else
  32. this.startP = (this.curS-1)*this.cntPS+1; 
  33. this.endP = (this.curS*this.cntPS>this.cntP)?this.cntP:(this.curS*this.cntPS); 
  34. for(var i = this.startP;i<=this.endP;i++){ 
  35. this.result['pagedata'].push((i==this.curP)?'<a href="#" class="curPage">'+i+'</a>':'<a href="#" οnclick="page('+i+')">'+i+'</a>'); 
  36. if(this.showPNP){ 
  37. if(this.curP>1)this.result['pagedata'].unshift('<a href="#" οnclick="page('+(this.curP-1)+')">上一页</a>'); 
  38. if(this.curP<this.cntP)this.result['pagedata'].push('<a href="#" οnclick="page('+(this.curP+1)+')">下一页</a>'); 
  39. this.result['pagebar'] = this.result['pagedata'].join(' '); 
  40. this.result['limit'] = [this.startR,this.endR]; 
  41. this.result['report'] = '共'+this.cntR+'条,当前页'+this.startR+'-'+this.endR+','+this.curP+'/'+this.cntP+'页'
  42. ETNGpager.prototype.parse = function (){ 
  43. var obj = document.getElementById(this.srcName); 
  44. for(var i = 0;i<obj.childNodes.length;i++){ 
  45. if(obj.childNodes[i].nodeType!=3)this.items[this.items.length]=obj.childNodes[i].innerHTML; 
  46. this.cntR = this.items.length; 
  47. return this.items.length; 
  48. ETNGpager.prototype.create=function(){ 
  49. this.page(); 
  50. document.getElementById(this.dstName).innerHTML='<li>'+this.items.slice(this.startR-1,this.endR).join('</li><li>')+'</li>'
  51. document.getElementById(this.dstName).innerHTML+='<span class="ctrlPages">'+this.result['pagebar']+this.result['report']+'</span>'
  52. //--> 
欢迎访问钢琴花园:www.pianohl.com