用户操作
[即时聊天] [发私信] [加为好友]
大龄青年ID:hahawen
115534次访问,排名751好友0人,关注者1
hahawen的文章
原创 46 篇
翻译 0 篇
转载 37 篇
评论 86 篇
大龄青年的公告
主人:大龄青年/hahawen
QQ:303015292
最近评论
皇冠世纪:皇冠世纪专业提供:

月子中心,酒店公寓住宿服务,香港胎儿性别测试,去香港生宝宝服务!
香港宝宝主网站:http://www.for-babys.cn
香港生宝宝论坛:http://bbs.for-babys.cn
皇冠世纪月子网站:http://www.for-mommy.cn
皇冠世纪香港生孩子网站: http://www.be……
kjb:[url=http://www.sirio.com.cn/]softgel[/url]
结肠炎治疗上我们也有非常强的历史
[url=http://www.google0808.cn/]GOOGLE左侧排名[/url]
专业的[url=http://www.zjcffy.com/]金华翻译公司[……
翻译:[url=http://www.goldenolive.net.cn]翻译公司[/url]
[url=http://www.goldenolive.net.cn]翻译[/url]
翻译公司
翻译
ff:水泵
磁力泵
多级泵
[url=http://www.hengxinbanjia.com]搬家公司[/url]
[url=http://www.hengxinbanjia.com/qqtl.htm]搬家公司[/url]
[url=http://www.hengxinbanjia.com]北京搬家公司[/url]
[url=http://www.hengxinbanjia.com/cc……
文章分类
收藏
相册
.net技术网站
devarticles
java技术网站
Hibernate中文网(RSS)
开源项目列表
php技术网站
pear官方网站
phpbuilder
phphub.com
php官方网站
StandardPHPLibrary
trip的blog,有好多的mail文章
zend官方网站
牛人的blog
其他的技术网站
xml资源下载
友情连接
王博的Blog(RSS)
娱乐网站
bt之家
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

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

新一篇: 用PHP开始你的MVC (一)整合你的站点入口 | 旧一篇: php实现"全局静态变量类"的一种实现方式

------------------------
------------------------
这篇文章主要是针对“使用模板的情况”写的,
但是这种方法适合于任何的场合,在任何情况下都是一种比较好的解决方案
------------------------
------------------------
在使用模板的时候,会遇到这么一个问题:显示分页信息时操作麻烦,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}这种类似的字符串用变量的值替换就可以了。
----------------------------

发表于 @ 2004年04月27日 23:59:00|评论(loading...)|编辑

新一篇: 用PHP开始你的MVC (一)整合你的站点入口 | 旧一篇: php实现"全局静态变量类"的一种实现方式

评论

#kjkj 发表于2005-02-19 20:36:00  IP: 219.218.97.*
jmjjjk
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 大龄青年