Система управления «Сайт PRO»
Версия 20240107

Формы ввода данных

Формы ввода данных хранятся в папке cms/form

Пример формы:

<form>
  <group>
    <field name="area" type="select" label="Место жительства" required="Y"><?php
    return "г. Нижний Новгород|г. Арзамас|г. Бор|г. Выкса|г. Дзержинск|г. Первомайск|г. Саров|г. Шахунья";
    ?></field>
    <div id="field-group" class="hide">
      <hr />
      <field name="field-01" type="radio" label="Оцените работу" required="Y" label-grid-n="1" label-grid-s="8" input-grid-n="10" input-grid-s="2"><?php
      return "1|2|3|4|5";
      ?></field>
    </div>
  </group>
  <script>
  $(function() {
  $("#area-field").change(function() {
    if ($(this).val()) $("#field-group").show();
    else $("#field-group").hide();
  }).triggerHandler("change");
  });
  </script>
</form>

Элементы формы

В XML-документе, описывающем форму, допускаются следующие элементы:

  • &lt;form>&lt;/form> – обязательный элемент, в который заключены все остальные элементы
  • &lt;group>&lt;/group> – элемент, описывающий группу полей. Визуально отображается как серый прямоугольник со скругленными углами
  • &lt;field /> или &lt;field>&lt;/field> – поле ввода данных формы
  • &lt;script>&lt;/script> – код на языке JavaScript, который будет выполняться в процессе заполнения формы пользователем
  • &lt;hr />, &lt;p>&lt;/p>, &lt;div>&lt;/div>, … – произвольные XHTML-элементы

Таким образом, минимальную форму можно создать с помощью следующего XML-документа:

<form>
  <group>
    <field />
  </group>
</form>

Параметры полей ввода данных

Элемент или может иметь следующие атрибуты:

  • name – имя поля. Допускаются символы латинского алфавита, цифры, символы “-” и “_”
  • type – тип поля. Возможные значения: text (ввод текста), password (ввод пароля), checkbox (флажок да/нет), select (раскрывающийся список), radio (радио-кнопка), multiple (выбор нескольких вариантов с помощью флажков), textarea (многострочный текст), date (выбор даты), captcha (проверочный код) и т.п. Список типов полей может быть расширен, например, полями для загрузки файлов, картинок, и т.д., которые требуют специальной обработки введенных данных
  • label – текст напротив поля ввода
  • info – всплывающая подсказка для данного поля
  • required – является ли поле обязательным для заполнения

Если для поля необходим список возможных вариантов (например, для радио-кнопки, выпадающего списка или выбора нескольких вариантов), то этот список необходимо создать с помощью вставки на языке PHP. В самом простом варианте список возможных значений задается строкой, в которой варианты разделены символом “|”:

<?php return '1|2|3|4|5'; ?>

Также допускается задание возможных значений в виде массива, ключами которого являются возможные значения, а элементами – их текстовые описания:

<?php return array( '' => 'По умолчанию', '1' => 'Вариант №1', '2' => 'Вариант №2' )?>

По умолчанию, поле ввода данных отображается в виде текста, который занимает 4/12 ширины страницы, и самого поля ввода, которое занимает 8/12 ширины страницы. Эти параметры можно изменить с помощью атрибутов поля:

  • label-grid-n – в какой из 12 ячеек начинается текст (по умолчанию 1 – текст слева)
  • label-grid-s – сколько ячеек из 12 занимает текст (по умолчанию 4 – ширина текста 4/12)
  • input-grid-n – в какой из 12 ячеек начинается поле ввода (по умолчанию 5 – сразу после текста)
  • input-grid-s – сколько ячеек из 12 занимает поле ввода (по умолчанию 8 – ширина поля ввода 8/12)

Пример выше иллюстрирует использование этих атрибутов.