手机
当前位置:查字典教程网 >编程开发 >php教程 >简化php模板页面中分页代码的解析
简化php模板页面中分页代码的解析
摘要:在使用模板的时候,会遇到这么一个问题:显示分页信息时操作麻烦,n多个模板都有分页块。例如:---共20条记录,当前3/5页首页上一页下一页尾...

在使用模板的时候,会遇到这么一个问题:显示分页信息时操作麻烦,n多个模板都有分页块。

例如:

---共 20 条记录,当前 3/5 页 首页 上一页 下一页 尾页 GO-----

初遇到这个问题的道友,在考虑解决这个问题的时候好像都是在打php的主意,考虑怎么用php来实现,但是不管你是怎么设计都后设计成两种方案

1、用嵌套循环来实现

2、用n多个判断来搞

但是最终还是比较麻烦的,而且解析的时候是用的服务器端的资源。

不妨换个方法用javascript来代替你的php!!!!,这样即可减少php脚本的代码量,还可以把解析分页的工作交给客户端自己来作。不过javascript调试起来可能会比较麻烦。

最重要的是可以简化分页显示时,解析模板遇到的痛苦。

下面用一个支持pear的itx模板工具解析的模板.

其中<>和<>表示一个块,{recordcount}这种类似的字符串是变量。

----------------list.tpl---------------------

复制代码 代码如下:

//其它的html代码

<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">

<TR>

<TD align="right" nowrap>

<script src="images/page.js" src="images/page.js" language="javascript"></script>

<script language="javascript"><>

recordCount = {recordcount};

show = {showinonepage}

pageCount = {pagecount};

pageNow = {page};

pageStr = "?page=_page_";

document.write(showListPage0(recordCount, show, pageCount, pageNow, pageStr));

<></script>

</TD>

</TR>

</TABLE>

//其它的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<1) pageCount =0;

if(pageNow<1) pageNow = 0;

str = '<form name="frmpage">共 <B>'+recordCount+'</B> 条记录,当前 <B>'+pageNow+'/'+pageCount+'</B> 页';

if(pageNow<=1)

str += " 首页 ";

else

str += " <A href=""+pageStr.replace("_page_",1)+"" href=""+pageStr.replace("_page_",1)+"">首页</A> ";

if(pageNow<=1)

str += " 上一页 ";

else

str += " <A href=""+pageStr.replace("_page_",(pageNow-1))+"" href=""+pageStr.replace("_page_",(pageNow-1))+"">上一页</A> ";

if(pageNow>=pageCount)

str += " 下一页 ";

else

str += " <A href=""+pageStr.replace("_page_",(pageNow+1))+"" href=""+pageStr.replace("_page_",(pageNow+1))+"">下一页</A> ";

if(pageNow>=pageCount)

str += " 尾页 ";

else

str += " <A href=""+pageStr.replace("_page_",pageCount)+"" href=""+pageStr.replace("_page_",pageCount)+"">尾页</A> ";

str += "跳到<input type="text" name="txtpage" size="3">页";

str += "<input type="button" value="GO" onclick="pagego0(document.frmpage.txtpage.value,"+pageNow+","+pageCount+",'"+pageStr+"')"></form>";

return str;

}

function pagego0(pageGo,pageNow,pageCount,pageStr){

if(pageGo>=1 && pageGo<=pageCount && pageNow!=pageGo)

window.location = pageStr.replace("_page_", pageGo);

}

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

【简化php模板页面中分页代码的解析】相关文章:

xml+php动态载入与分页

php curl 上传文件代码实例

php数组合并与拆分实例分析

php替换字符串中间字符为省略号的方法

php中file_exists函数使用详解

php编写批量生成不重复的卡号密码代码

php curl请求信息和返回信息设置代码实例

一段php加密解密的代码

PHP开启opcache提升代码性能

留言板翻页的实现详解

精品推荐
分类导航