smarty使用过程成功中,通常都会使用到显示序号的问题。使用模板引擎自带的解决方案 自动显示序号又会明显后劲不足,第二页还是从1开始显示!怎么解决这个问题呢?怎么只在前端处理一下呢??
首先认识一下模板引擎自带的一些功能:
smarty中foreach属性中 index、last、iteration、show:
1、 .index包含单签数组的索引,从零开始。
2、 .iteration包含当前循环的次数,从1开始。
3、 .first当前循环的第一个
4、 .last 当前遍历的最后一个
5、 .show是{foreach}的参数. show是一个布尔值。如果值为FALSE,{foreach}将不被显示。如果有对应的{foreachelse},将被显示
{foreach from=$items key=myId item=i name=foo}
$smarty.foreach.foo.index
{/foreach}
然后,我们可以预想一下,如果当前分页每页显示数量 10,那么
第一页的序号为: 1、 2、 3、4、 5、 6、 7、 8、 9、10
第二页的序号为:11、12、13、14、15、16、17、18、19、20
算法应该是这样的 每页显示数量 * (当前页-1)+ 序号(从1开始的)
but,smarty模板引擎里面不能使用小括号,否则一直会报语法错误!!! 然而,每页显示数量 * (当前页-1)又是后端程序常用来分页的 start,所以我们可以用后端传过来这个值,避免以后修改页数还得修改前端模板的问题(主题是:前端如何来控制显示序号)
最后就变成了 { $start+$smarty.foreach.reco.iteration } 的问题,这里又有一个坑,加好+前后不能有空格,否则不能正常相加。
走来,真是一路bug,不过还好问题,已经解决,,强迫症性的解决问题,为了后端偷懒嘛,哈哈~~~
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn