本文目录一览:
php smarty循环问题,请看图
if(s%2)
这个判断错了。不能这样判断。要这样:
if($smarty.foreach.s.index % 2 == 0)
这个是smarty的标准写法。
else
里面的 %2==1
就不用写了,删了。
怎么判断php循环中是不是最后一个 smarty
我觉得可以这样,可以读取记录的时候将数据的条数也查出来。assign到前台页面,循环都是可以获取当前循环的次数的,虽然我并不知道smarty的foreach 循环获取当前循环次数是哪个参数,你可以查一查,应该能查到,这个,用当前循环次数,和数据的总数,也就是总循环次数比较,相等的话就是最后一次循环了。 解决方案
- 你这不是 php 循环,而是模板语言的循环
- 你的这个很像 smarty 模板语言,但不能确定。很多模板引擎都套用这个格式
- 如果能确认是 smarty 模板引擎,那么有一个
last
属性正好满足你的需要。
last
当前foreach
循环执行到最后一遍时last
被设置成 true。
{* 在列表最后添加水平线 *}
{foreach from=$items key=part_id item=prod name=products}
...
{foreachelse}
... content ...
{/foreach}
相应的还有很多实用的属性可供使用,比如:index
、iteration
、first
、total
等这些都是那些有着 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>