smarty section循环成两列的问题
问题描述:
用section循环,只能循环成一列。也就是一个tr只能带一个td。
现在要实现一个tr带两个td。
解决方案:
判断序号,根据奇偶来决定什么时候出现<tr>开始,什么时候出现</tr>结束。
偶数时开始,奇数时结束。
这样,就能实现一个tr中可以包含多个td了。
代码:
<!--{section loop=$aUserAnswer name=data step=1}-->
<!--{if $smarty.section.data.index is even}-->
<tr bgcolor="#f7f7f7" height="50" align="left">
<!--{/if}-->
<td class="font14_s pl40"> <!--{$aUserAnswer[data].realname}-->: <input type="text" class="input_233" value="<!--{$aUserAnswer[data].score}-->"/></td>
<!--{if $smarty.section.data.index is odd}-->
</tr>
<!--{/if}-->
<!--{if $smarty.section.data.last}-->
<!--{if $smarty.section.data.index is even}-->
<td class="font14_s pl40"> </td>
</tr>
<!--{/if}-->
<!--{/if}-->
<!--{/section}-->
代码解析:
通过$smarty.section.data.index来进行判断,如果是偶数,则<tr bgcolor="#f7f7f7" height="50" align="left">
如果是基数则</tr>
通过if $smarty.section.data.last判断最后一个元素是奇偶,如果是偶数,则补上一个td+一个tr。
这样问题就得到解决了。
效果图如下:


浙公网安备 33010602011771号