如果,我真的很难理解这个聪明的人。 对于每个
{foreach $values as $value}
{if $value = a}
do action
{elseif $value = b}
do action
{elseif $value = c}
do action
{/if}
{/foreach}
我只想为整个foreach'做一次'行动'。对于foreach的任何一次迭代,不同的条件(a b或c)可能是=到$ value
我正在处理的真实世界示例是将'selected'添加到下拉选项中。
<select>
{foreach $offices as $office}<!-- The if below is done so that the form is sticky, and when editing a post, it shows the post's current setting.-->
<option
{if $smarty.post.OfficeCode == $office.OfficeCode}
selected='selected'
{elseif $bulletin_array[0].OfficeCode == $office.OfficeCode}
selected='selected'
{elseif $office.OfficeCode == $UsersOffice}
selected='selected'
{/if}
title='{$office.Description}' value='{$office.OfficeCode}'>{$office.Title}
</option>
{/foreach}
</select>
如果表单已被提交,则第一个if将为true - 使表单变粘 第二部分将是真实的,在编辑记录时预先填写表格 - 即预先填写具有当前值的表格 如果用户正在创建新记录,则第三部分将为true,在这种情况下,将其设置为用户通常使用的默认选项。 我需要某种方式只允许选择添加一次。 我php我会在foreach之外有一个变量,如果添加了选择,则设置为true。然后我会在执行if elseif
之前检查该变量答案 0 :(得分:1)
{if ($smarty.post.OfficeCode eq $office.OfficeCode)
or ($bulletin_array[0].OfficeCode eq $office.OfficeCode)
or ($office.OfficeCode eq $UsersOffice)}
selected='selected'
{/if}