Alkeeper
Новичок
Вложение одной переменной в качестве индекса в другую на уровне шаблона
собственно вот задачка:
по Гету передаются переменные, форма одна, а вот переменные каждый раз имеют разные имена.
Возникла такая необходимость - заполнять форму значениями введенными по предыдущему запросу на странице результата.
имеем такой код Smarty:
Проблема в правильной сборке вот этого:
value="{if $smarty.get.$fields[f].var_name}{$smarty.get.$fields[f].var_name}{/if}
или уж совсем узко вот этого:
$smarty.get.$fields[f].var_name
т.е. значения переменной GET пришедшей с индексом появляющемся в секции
Синтаксисом ПХП это было бы так:
$_GET[$fields[$f][var_name]]
или шире так $_GET[$fields[$f][var_name]][min] // или max
как правило приходят они вместе, т.е. гетовая переменная может быть и массивом в том числе.
пробую так:
1. $smarty.get[$fields.f.var_name] // Ошибка синтаксиса смарти ($smarty.get[$fields.f.var_name] is an invalid reference)
2. $smarty.get.$fields[f].var_name // Ошибка скомпилированного ПХП файла (illegal offset)
3. $smarty.get.$fields.f.var_name // Сам понимаю, что нарушается всякая логика, ошибка из случая 2.
4. $smarty.get[$fields[f].var_name] // Ошибка Смарти (unidentified token '[$fields[f].var_name]')
Может кто-нить подсказать, как еще скобочки порасставлять?
Спасибо
собственно вот задачка:
по Гету передаются переменные, форма одна, а вот переменные каждый раз имеют разные имена.
Возникла такая необходимость - заполнять форму значениями введенными по предыдущему запросу на странице результата.
имеем такой код Smarty:
Код:
<form action="{$mainpath}" enctype="application/x-www-form-urlencoded" method="get">
{section name=f loop=$fields}
{if $fields[f].is_filter}
{if $fields[f].allow_vals}
<select name="{$fields[f].var_name}">
<option>Все...</option>
{section name=opt loop=$fields[f].allow_vals}
<option value="{$fields[f].allow_vals[opt]}"{if $smarty.get.$fields[f].var_name == $fields[f].allow_vals[opt]} selected{/if}>
{$fields[f].allow_vals[opt]}</option>
{/section}
</select>
{else}
<input name="{$fields[f].var_name}" type="text" value="{if $smarty.get.$fields[f].var_name}{$smarty.get.$fields[f].var_name}{/if}">
{/if}
{/if}
{/section}
.....
</form>
value="{if $smarty.get.$fields[f].var_name}{$smarty.get.$fields[f].var_name}{/if}
или уж совсем узко вот этого:
$smarty.get.$fields[f].var_name
т.е. значения переменной GET пришедшей с индексом появляющемся в секции
Синтаксисом ПХП это было бы так:
$_GET[$fields[$f][var_name]]
или шире так $_GET[$fields[$f][var_name]][min] // или max
как правило приходят они вместе, т.е. гетовая переменная может быть и массивом в том числе.
пробую так:
1. $smarty.get[$fields.f.var_name] // Ошибка синтаксиса смарти ($smarty.get[$fields.f.var_name] is an invalid reference)
2. $smarty.get.$fields[f].var_name // Ошибка скомпилированного ПХП файла (illegal offset)
3. $smarty.get.$fields.f.var_name // Сам понимаю, что нарушается всякая логика, ошибка из случая 2.
4. $smarty.get[$fields[f].var_name] // Ошибка Смарти (unidentified token '[$fields[f].var_name]')
Может кто-нить подсказать, как еще скобочки порасставлять?
Спасибо