Re: [請益] 請問大家用Smarty在這種情況會怎麼做
我的作法是這樣
原本一行三個
<table>
{{foreach item=val from=aData key=key1 name=foo}}
{{if $smarty.foreach.foo.first || (key1 is div by 3) }}
<tr>
{{/if}}
<td>{{$val}}</td>
{{if $smarty.foreach.foo.last || (key1 % 3 == 2) }}
</tr>
{{/if}}
{{/foreach}}
</table>
針對不足數補齊
<table>
{{foreach item=val from=aData key=key1 name=foo}}
{{if $smarty.foreach.foo.first || (key1 is div by 3) }}
<tr>
{{/if}}
<td>{{$val}}</td>
{{if $smarty.foreach.foo.last && (key1 % 3 != 2)}}
{{assign var=loop value=3 - ($smarty.foreach.foo.totle%3)}}
{{section name=null_row loop=$loop}}
<td> </td>
{{/section}}
{{/if}}
{{if $smarty.foreach.foo.last || (key1 % 3 == 2) }}
</tr>
{{/if}}
{{/foreach}}
</table>
利用 section 執行不足數迴圈補回 <td> </td>
如果一行要放五筆或六筆資料比較不會哭哭
X
: 在最後一筆的時候
: 做另外的處理
: <table>
: {{foreach item=val from=aData key=key1 name=foo}}
: {{if key1 % 3 }}
: <tr>
: {{/if}}
: {{if ($smarty.foreach.foo.last == 1)&&($smarty.foreach.foo.totle%3 == 2)}}
: <td>{{$val}}</td></tr>
: {{else if ($smarty.foreach.foo.last == 1)&&($smarty.foreach.foo.totle%3 == 1)}}
: <td>{{$val}}</td><td></td></tr>
: {{else if ($smarty.foreach.foo.last == 1)&&($smarty.foreach.foo.totle%3 == 0)}}
: <td>{{$val}}</td><td></td><td></td></tr>
: {{else}}
: <td>{{$val}}</td>
: {{if key1 % 3 }}
: </tr>
: {{/if}}
: {{/if}}
: {{/foreach}}
: </table>
: 其實我覺得smarty很好用
: 但是它美中不足的地方
: 就是不能用巢狀式if
: 都要寫在一起= =
: 實在很難看
: 不過其他地方真的很好用
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.129.208
→
09/15 18:40, , 1F
09/15 18:40, 1F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章