Инструменты пользователя

Инструменты сайта


limb3:ru:packages:wact:tags:form_tags:select_tag

<select>

Описание

Расширенная форма html тега <select>.

Является потомком ControlTag.

Список опций из тегов <option> генерится тегом <select> на лету во время исполнения шаблона. При этом можно передать список отпций на этапе компиляции, а можно задать его прямо в шаблоне.

<select> самостоятельно помещает нужные опции как выбранные. Для этого в контейнер данных тега <form> нужно передать целочисленное значение, равное атрибуту value тега <option>. Если используется <select> с возможностью выбора нескольких элементов, то контейнер данных формы для поля <select> должен содержать массив значений. см. пример ниже.

см. раздел "Использование select тегов", который объясняет различные способы задания <option> списков.

см. также тег <select:options_source>, который используется для заполнения списка опций на этапе выполнения шаблона._

Синтаксис

<select id='cities' name='cities' [multiple]>
  <option>..</option>...
</select>

Содержимое

Обычно список тегов <option> или ничего, если список опций передается на этапе выполнения шаблона.

Компонент

То, какой компонент времени исполнения шаблона будет выбран, зависит от атрибута multiple. Если он установлен, то будет создан WactSelectMultipleComponent, в противном случае - WactSelectSingleComponent.

Методы

Методы обоих компонентов идентично, но отрабатывают они немного по разному.

  • setSelection($selection)) - позволяет указать выбранный элемент.
  • setChoices($choiceList) - позволяет установить список опций, из которых будут сформированы <option> теги.
  • renderContents() - выводит список опций с одним выбранный элементом.

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

Рабочие примеры можно найти в папке limb/wact/examples/tags/form/select/.

<form id='countries' [...] runat='server'>
  <tr>
    <td>
       <select name="Country" id="Country"></select>
    </td>
  </tr>
</form>

Вот так будет выглядеть php-код, который заполнит список опций тега <select>:

$template = new WactTemplate('select.html');
$form = $template->getChild('countries');
$country = $form->getChild('Country');
 
$countries_list = array('1' => 'Russia', '2' => 'Ukraine', '3' => 'USA');
$country->setChoices($countries_list);
 
$form->set('Country', 3); // пометит USA, как выбранную опцию
 
// Если мы select использовался с атрибутом multiple:
// $form->set('Country', array(1, 3)); // пометит Russia и USA, как выбранные опции

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   ___    ___   ____    _  __   ___ 
  / _ \  / _ | / __ \  | |/_/  / _ \
 / // / / __ |/ /_/ / _>  <   / // /
/____/ /_/ |_|\____/ /_/|_|  /____/
 
limb3/ru/packages/wact/tags/form_tags/select_tag.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)