Содержание

Тег {{form}}

Описание

Теги группы {{form}} удобны, если вам необходимо работать с активной формой, то есть проверять поля формы, выводить ошибки валидации, сохранять значения в полях после отправки формы и повторной ее отображении - MACRO содержит широкий набор средств, превращающий эти теги <form>, <input> и т.д. в полноценные активный компоненты.

см. раздел "Теги форм с активными компонентами", который подробно объясняет этот момент.

Синтаксис

{{form id='id' [..любые атрибуты html-тега <form>] [from='$some_var']}}
  ...some form controls...
{{/form}}

Область применения

В любом месте MACRO шаблона.

Атрибуты

Плюс любые атрибуты html-тега <form>.

:!: Если вы не указали явно параметр name, то оно будет сгенерировано со значением параметра id.

Содержимое

Любое.

Передача данных и ошибок валидации в форму через спец. переменные шаблона

На этапе выполнения шаблона тегу {{form}} соответствует так называемый runtime компонент. Этот компонент может автоматически использовать в качестве контейнера данных и списка ошибок валидации переменные шаблона, названные особым образом:

Приведем небольшой пример:

<? $this->form_my_form_datasource = array('value' => 1111); ?>
<? $this->form_my_form_error_list = array(array('message' => 'Some error')); ?> 
 
{{form name="my_form"}}
 <? $ds = $this->form_my_form->getDatasource();
  echo $ds["value"]; ?>
  <br/>
 <? $error_list = $this->form_my_form->getErrorList();
  echo $error_list[0]["message"]; ?>
{{/form}}

На выходе получим:

<form name=«my_form»>1111<br/>Some error</form>

Именно эти переменные ставит класс lmbMacroView, который можно найти в пакете VIEW.

Пример использования

см. также пример для lmbMacroFormElementTag.

{{form id='search_form' name='search_form' action='/search' method='get' }}
  <tr>
    <td >
     Search
    </td>
    <td>
     {{input type="text" id="query" name="query" class='input' size='40'/}}
    </td>
  </tr>
  <tr>
    <td colspan='2'>
     <input type="submit" value='Search'/>
    </td>
  </tr>
  <input type="hidden" name="action" value='create'/>
{{/form}}