У меня реальная проблема с тем, чтобы разобраться с этим умом еще, если.
За каждый
{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
Пример из реального мира, над которым я работаю, - это добавление «выбранного» в раскрывающийся список.
<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, если форма была отправлена - чтобы сделать форму липкой
вторая часть будет верна, форма предварительно заполняется при редактировании записи - то есть предварительно заполнить форму текущим значением
третья часть будет истинной, если пользователь создает новую запись, и в этом случае установите для нее значение по умолчанию, которое пользователь обычно использует.
Мне нужен какой-то способ разрешить добавление выбранного только один раз.
Я php У меня будет переменная за пределами foreach, который был установлен в true, если выбран был добавлен. Затем я проверил бы эту переменную перед выполнением if elseif