smarty foreach 分页第二页序号不从1开始显示的问题

        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,不过还好问题,已经解决,,强迫症性的解决问题,为了后端偷懒嘛,哈哈~~~


        

冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论