>  기사  >  php教程  >  如何简化php模板页面中分页代码的解析

如何简化php模板页面中分页代码的解析

WBOY
WBOY원래의
2016-06-21 09:07:051977검색

分页|模板|页面

------------------------
------------------------
这篇文章主要是针对“使用模板的情况”写的,
但是这种方法适合于任何的场合,在任何情况下都是一种比较好的解决方案
------------------------
------------------------
在使用模板的时候,会遇到这么一个问题:显示分页信息时操作麻烦,n多个模板都有分页块。
例如:
---共 20 条记录,当前 3/5 页 首页 上一页 下一页 尾页 GO-----
初遇到这个问题的道友,在考虑解决这个问题的时候好像都是在打php的主意,考虑怎么用php来实现,但是不管你是怎么设计都后设计成两种方案
1、用嵌套循环来实现
2、用n多个判断来搞
但是最终还是比较麻烦的,而且解析的时候是用的服务器端的资源。

不妨换个方法用javascript来代替你的php!!!!,这样即可减少php脚本的代码量,还可以把解析分页的工作交给客户端自己来作。不过javascript调试起来可能会比较麻烦。
最重要的是可以简化分页显示时,解析模板遇到的痛苦。
下面用一个支持pear的itx模板工具解析的模板.
其中表示一个块,{recordcount}这种类似的字符串是变量。

----------------list.tpl---------------------
//其它的html代码


 
  
 

   
   
  

//其它的html代码

--------------------page.js------------
//---------------共 20 条记录,当前 3/5 页 首页 上一页 下一页 尾页 GO-------------------
//recordCount = 20;
//show = 20
//pageCount = 5;
//pageNow = 3;
//pageStr = "?page=_page_";
//document.write(showListPage(recordCount, show, pageCount, pageNow, pageStr));
function showListPage0(recordCount, show, pageCount, pageNow, pageStr){
 if(pageCount if(pageNow str = '

'+recordCount+' 条记录,当前 '+pageNow+'/'+pageCount+' 页';
 if(pageNow  str += " 首页 ";
 else
  str += " 首页 ";
 if(pageNow  str += " 上一页 ";
 else
  str += " 上一页 ";
 if(pageNow>=pageCount)
  str += " 下一页 ";
 else
  str += " 下一页 ";
 if(pageNow>=pageCount)
  str += " 尾页 ";
 else
  str += " 尾页 ";
 str += "跳到页";
 str += "
";
 return str;
}
function pagego0(pageGo,pageNow,pageCount,pageStr){
 if(pageGo>=1 && pageGo  window.location = pageStr.replace("_page_", pageGo);
}

----------------------------
另外这种方法即使不用模板,也可以用,也一样是一种好的分页解决方案,只要将{recordcount}这种类似的字符串用变量的值替换就可以了。
----------------------------




성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.