ecshop模板中foreach使用規則,他有以下幾個參數 from,item name iteration index,下面我們一起來看它的用法.
1:foreach使用規則,他有以下幾個參數 from,item name iteration index
2:如何使用foreach循環
如果php要傳遞一個數組(如:$array)給ecshop的smarty模板,那么我們將通過from=$array 來接受,寫法代碼如下:
{foreach from = $array item = item}
3:ecshop中smarty的下標如何表示,請看下面的例子:
{foreach from = $array item = item name=name}
{$smarty.foreach.name.iteration}
{/foreach}
這里的iteration就是從1開始的下標,如果要從0開始的下標,應該使用{$smarty.foreach.name.index}.
4:如何判斷是否是foreach循環的開始和結束,最后一個元素,代碼如下:
{if $smarty.foreach.last}表示循環的最后一個元素,{if $smarty.freach.first}表示循環的開始.
5:如何使用雙重循環,舉例如下:
{foreach from = $test item =item}
{foreach from=$item.children item=child}
{$child.name}
{/foreach}
{/foreach}
上面五條是官方找到的,下面我通過幾天的應用,總結出了ec模版中foreach的常見用法,假如后臺:$smarty->assign('test',$test);代碼如下:
{foreach from=$test item=list name=listone}
<p>{$list}</p>
{/foreach}
from 表示assign過來對應的第一個參數'test',item 就是下面要循環的變量,name是用于訪問foreach屬性的foreach循環的名稱,key當前鍵名的變量名.
但是我們經常會看到這樣的寫法:
<!--{foreach from=$test item=list name=listone key=key}-->
<p>{$list}</p>
<!--{/foreach}-->
其實這兩種都是一樣的,只是加了 <!-- --> 之后,你有沒有發現用dreamwearver打開這些語句會以注釋一樣的灰色顯示,這樣一眼能看出標簽,還有就是調試模版時候,用瀏覽器打開,加了<!-- -->會注釋掉if foreach等這些,而不影響模版原來的樣子,更能方便調試模版.
多重循環,兩次循環,代碼如下:
<!--{foreach from=$categories item=list}-->
<!--{foreach from=$list.cat item=cat}-->
<a href="{$cat.url}">{$cat.name}</a>
//
<!--{/foreach}-->
<!--{/foreach}-->
只循環出前兩條數據,代碼如下:
<!--{foreach from=$categories item=list name=catlist}-->
<!--{if $smarty.foreach.catlist.iteration<2}-->
<a href="{$list.url}">{$list.name}</a>
<!--{/if}-->
<!--{/foreach}-->
foreachelse,代碼如下:
<!--{foreach from=$categories item=list}--
<a href="{$list.url}">{$list.name}</a>
<!--{foreachelse}-->
<p>no data</p>
<!--{/foreach}-->
如果{foreach from=$categories item=list}一條數據也沒有,那么就執行下面的{foreachelse}{/foreach}里面的內容.
新聞熱點
疑難解答