微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

在使用模板的时候,会遇到这么一个问题:显示分页信息时操作麻烦,n多个模板都有分页块。
例如:
---共 20 条记录,当前 3/5 页 首页 上一页 下一页 尾页 GO-----
初遇到这个问题的道友,在考虑解决这个问题的时候好像都是在打PHP的主意,考虑怎么用PHP来实现,但是不管你是怎么设计都后设计成两种方案
1、用嵌套循环来实现
2、用n多个判断来搞
但是最终还是比较麻烦的,而且解析的时候是用的服务器端的资源。
不妨换个方法用javascript来代替你的PHP!!!!,这样即可减少PHP脚本的代码量,还可以把解析分页的工作交给客户端自己来作。不过javascript调试起来可能会比较麻烦。
最重要的是可以简化分页显示时,解析模板遇到的痛苦。
下面用一个支持pear的itx模板工具解析的模板.
其中表示一个块,{recordcount}这种类似的字符串是变量。
----------------list.tpl---------------------
<div class="codetitle"><a style="CURSOR: pointer" data="74551" class="copybut" id="copybut74551" onclick="doCopy('code74551')"> 代码如下:

<div class="codebody" id="code74551">
//其它的HTML代码
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">


<script src="images/page.js" src="images/page.js" language="javascript">
<script language="javascript">
recordCount = {recordcount};
show = {showinonepage}
pageCount = {pagecount};
pageNow = {page};
pageStr = "?page=page";
document.write(showListPage0(recordCount,show,pageCount,pageNow,pageStr));




//其它的HTML代码
--------------------page.js------------
//---------------共 20 条记录,当前 3/5 页 首页 上一页 下一页 尾页 GO-------------------
//recordCount = 20;
//show = 20
//pageCount = 5;
//pageNow = 3;
//pageStr = "?page=page";
//document.write(showListPage(recordCount,pageStr));
function showListPage0(recordCount,pageStr){
if(pageCount<1) pageCount =0;
if(pageNow<1) pageNow = 0;
str = '<form name="frmpage">共 '+recordCount+' 条记录,当前 '+pageNow+'/'+pageCount+' 页';
if(pageNow<=1)
str += " 首页 ";
else
str += " <A href=""+pageStr.replace("page",1)+"" href=""+pageStr.replace("page",1)+"">首页 ";
if(pageNow<=1)
str += " 上一页 ";
else
str += " <A href=""+pageStr.replace("page",(pageNow-1))+"" href=""+pageStr.replace("page",(pageNow-1))+"">上一页 ";
if(pageNow>=pageCount)
str += " 下一页 ";
else
str += " <A href=""+pageStr.replace("page",(pageNow+1))+"" href=""+pageStr.replace("page",(pageNow+1))+"">下一页 ";
if(pageNow>=pageCount)
str += " 尾页 ";
else
str += " <A href=""+pageStr.replace("page",pageCount)+"" href=""+pageStr.replace("page",pageCount)+"">尾页 ";
str += "跳到<input type=\"text\" name=\"txtpage\" size=\"3\">页";
str += "<input type=\"button\" value=\"GO\" onclick=\"pagego0(document.frmpage.txtpage.value,"+pageNow+","+pageCount+",'"+pageStr+"')\">";
return str;
}
function pagego0(pageGo,pageStr){
if(pageGo>=1 && pageGo<=pageCount && pageNow!=pageGo)
window.location = pageStr.replace("page",pageGo);
}

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

原文地址:https://www.jb51.cc/php/29326.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐