[英]Understanding PHP Smarty template Foreach with nested While
我的smarty模板中包含以下代碼:
{foreach from=$categories item=l}
<tr>----------START---------------</tr> <br/>
{$l.category_name|strip_tags}
{$l.sub_category}
{while $l.sub_category}
<td>{$l.category_name|strip_tags}</td>
{foreach from=$l.sub_category item=k}
<td>{$k.category_name|strip_tags}</td>
<br/>
{/foreach}
<br/>
{/while}
----------END---------------
<br/>
<br/>
{/foreach}
輸出:
---------- START --------------- Teachers&StaffArray
- - - - - 結束 - - - - - - - -
---------- START --------------- PTA和基金會
- - - - - 結束 - - - - - - - -
---------- START ---------------濃縮程序
- - - - - 結束 - - - - - - - -
教職員工5年級6年級PTA和基金會
濃縮計划
我希望它能打印出來:
---------- START ---------------教師與教職員工
五年級六年級
- - - - - 結束 - - - - - - - -
---------- START --------------- PTA和基金會
- - - - - 結束 - - - - - - - -
---------- START ---------------濃縮程序
- - - - - 結束 - - - - - - - -
似乎在for循環之后輸出了輸出。 我是聰明模板的新手,並不真正理解為什么這樣打印。
另外,我還有另一個問題:
{while $l.sub_category}
{foreach from=$l.sub_category item=k}
<br/>
{ $k.category_name|strip_tags }
{/foreach}
{ assign var=l value=$l.sub_category}
<br/>
{/while}
我想更新循環條件變量..但是我真的不太確定,然后我做了其他的assign方法。
任何建議表示贊賞。
我認為問題可能出在表結構上,在輸出td標簽之前打開和關閉tr,然后某些瀏覽器會按順序顯示內容。
它應該遵循
{foreach cat loop}
<tr>
<td>
{while loop}
</td>
<td>
{foreach loop}
</td>
</tr>
{/close foreach loop}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.