在smarty模板语言中,因为存在一定的局限性。所以循环中经常会碰到一些特殊的处理,所以直奔主题:
案例一:要如下显示数据,M形排列。在循环中加以控制——换行。
1 → 3 5 7
↓
2 4 6 8
代码:
单单说回行,大家都可以很简单的处理:
<!–{foreach from=$array key=key item=item}–>
<!–{if $key %2 !=0 && $key!=0}–>
{$item}
<!–{/if}–>
<!–{/foreach}–>
但常常需求并不是这么简单,如果里面的数字(1,2,3…)换作是一张图片和一行文字呢,或者更复杂的显示方式,就要用到div和css。假设 1+2 放到同一div中:
<div>
<div>1</div>
<div>2</div>
</div>
<div>
<div>3</div>
<div>4</div>
</div>
…
思路是这样的,逢key%2==0就需要重新<div>…</div>:
<!–{foreach from=$array key=key item=item}–>
<!–{if $key %2 ==0}–>
<div>
<!–{/if}–>
<div>{$item}</div>
<!–{if $key %2 ==0}–>
</div>//用来闭合上面class=item的div
<!–{/if}–>
<!–{/foreach}–>
这样,问题也就接踵而来了,如果数据恰恰到奇数个呢,岂不是没有了下面的闭合</div>,所以这里就要用到一个判断,和一个 smarty 循环时经常忽略的一个元素——name。代码稍作修改:
<!–{foreach from=$array key=key item=item name=loop1}–>
<!–{if $key %2 ==0}–>
<div>
<!–{/if}–>
<div>{$item}</div>
<!–{if $key %2 ==0 || $smarty.foreach.loop1.last%2!==0}–>
</div>//用来闭合上面class=item的div
<!–{/if}–>
<!–{/foreach}–>
转载请注明来源蓝普网络并以链接形式标明本文地址
本文链接: http://www.wbphp.cn/html/y12/2021.html
作者:牡丹网景 | 日期:2009-12-05 | 分类:心情日记 | 评论:0 条 | 浏览:62 次
分类信息
ecshop技巧 css ecshop ecstore FleaPHP html javascript joomla LAMP mysql php qeephp zencart ZendFramework 他们看我 客户案例 APP PC 微信版 牡丹志 09感言 ecshop-lanpu成长历程 内部通知 北京手记 员工成长档案 心情日记 新闻中心 蓝普汇
标签
PHP ecshop 外包 JS php外包 牡丹网景 心情日记 function 设计 Mysql jQuery CSS 常见问题 javascript html 洛阳 进阶课堂 == 心情 2008年 技术笔记 优化 SEO phpcms 新闻 for 问题 客户 如何 工作杂记
联系我们
地址:洛阳市洛龙区长厦门街与开元大道交叉口863创智广场一号楼 23层2329 全国客服热线:400 8789 863 猪八戒店:http://shop.zhubajie.com/498238
我们的承诺
1、一条龙服务:享受特价千兆空间优惠活动。 2、免费售后:我们的客户免费三个月的网站修改、调整等售后服务,享有一年的电话网络咨 询服务。 3、反馈机制:我们做过项目的客户将会在下一个项目进行金额进行反馈,做的越多越优惠。 4、定期回访:我们将会定期回访客户,以便提升服务方式,改进工作。 5、价格最低:如果发现,其他公司的同等产品报价低于我们的我们将退还差价!