smarty循环和php循环,php模板技术smarty

发布时间:2023-01-06

本文目录一览:

  1. php smarty循环问题,请看图
  2. 怎么判断php循环中是不是最后一个 smarty
  3. php smarty 嵌套循环问题

php smarty循环问题,请看图

if(s%2) 这个判断错了。不能这样判断。要这样: if($smarty.foreach.s.index % 2 == 0) 这个是smarty的标准写法。 else 里面的 %2==1 就不用写了,删了。

怎么判断php循环中是不是最后一个 smarty

我觉得可以这样,可以读取记录的时候将数据的条数也查出来。assign到前台页面,循环都是可以获取当前循环的次数的,虽然我并不知道smarty的foreach 循环获取当前循环次数是哪个参数,你可以查一查,应该能查到,这个,用当前循环次数,和数据的总数,也就是总循环次数比较,相等的话就是最后一次循环了。 解决方案

  1. 你这不是 php 循环,而是模板语言的循环
  2. 你的这个很像 smarty 模板语言,但不能确定。很多模板引擎都套用这个格式
  3. 如果能确认是 smarty 模板引擎,那么有一个 last 属性正好满足你的需要。
    last 当前 foreach 循环执行到最后一遍时 last 被设置成 true。
{* 在列表最后添加水平线 *}
{foreach from=$items key=part_id item=prod name=products}
...
{foreachelse}
 ... content ...
{/foreach}

相应的还有很多实用的属性可供使用,比如:indexiterationfirsttotal 等这些都是那些有着 smarty 形,却无 smarty 质的所谓高效模板引擎所做不到的如果你还是不会的话je 可以去后盾里面查询 里面有很多资料,可以供你参考。

php smarty 嵌套循环问题

是你数据组和写法不对. 把子分类组织成数组,作为主分类的一个元素.结构类似这样的.

array(array('title'='大分类一','Sloop'=array('title'='子分类一')))

我习惯用 section,所以用 section 给你举例子.

<dl>
<dt><a href="#"></a></dt> <!-- 大分类的标题 -->
<!-- 处理大分类下的小分类,sloop是一个数组 -->
<dd><a href="#"></a></dd>
</dl>