分享
 
 
 

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

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

------------------------

------------------------

这篇文章主要是针对“使用模板的情况”写的,

但是这种方法适合于任何的场合,在任何情况下都是一种比较好的解决方案

------------------------

------------------------

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

例如:

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

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

1、用嵌套循环来实现

2、用n多个判断来搞

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

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

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

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

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

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

//其它的html代码

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

<TR>

<TD align="right" nowrap>

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

<script language="javascript">

<!-- BEGIN page -->

recordCount = {recordcount};

show = {showinonepage}

pageCount = {pagecount};

pageNow = {page};

pageStr = "?page=_page_";

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

<!-- END page -->

</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)+"'>首页</A> ";

if(pageNow<=1)

str += " 上一页 ";

else

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

if(pageNow>=pageCount)

str += " 下一页 ";

else

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

if(pageNow>=pageCount)

str += " 尾页 ";

else

str += " <A 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}这种类似的字符串用变量的值替换就可以了。

----------------------------

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有