Re: [請益] 請問大家用Smarty在這種情況會怎麼做

看板PHP作者 (RB)時間16年前 (2009/09/15 17:06), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/4 (看更多)
我的作法是這樣 原本一行三個 <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>&nbsp;</td> {{/section}} {{/if}} {{if $smarty.foreach.foo.last || (key1 % 3 == 2) }} </tr> {{/if}} {{/foreach}} </table> 利用 section 執行不足數迴圈補回 <td>&nbsp;</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
key1 --> $key1
09/15 18:40, 1F
文章代碼(AID): #1Ahra8iS (PHP)
文章代碼(AID): #1Ahra8iS (PHP)