Настройка полей формы
Создадим форму и будем изменять параметры ее полей
<? $fields = array(array("Ваше имя", "char", "name", array("required" => true), array("Пол", "enum", "gender", array("values_list" => array("Мужской", "Женский"))), array("Email", "email", "email"), array("Получать новости", "bool", "news_subscribe"), array("Дополнительная информация", "text", "about", array("help_text" => "Расскажите о себе")) ); $form = new Form($fields); //Вывод всех полей формы, по умолчанию выводится рядами таблицы echo $form -> display(); //Вывод всех полей формы, в вертикальном виде в тэгах "div" echo $form -> displayVertical(); //Вывод выборочных полей формы в нужной последовательности echo $form -> display(array("name", "about", "email")); //Вывод html кода для отдельного поля формы (без названия) echo $form -> displayFieldHtml("gender"); //Вывод формы с ошибками, прикрепленными к полям echo $form -> setDisplayWithErrors() -> display(); ?>
Добавление / удаление поля
$form = new Form($fields); //Операции над полями выполняются до проверки и вывода на экран полей формы $form -> addField(array("Номер телефона", "phone", "phone_number")); $form -> removeField("news_subscribe"); echo $form -> display();
Изменение параметров полей
//Сделать поле обязательным для заполнения $form -> setRequired("about"); //Сделать несколько полей обязательными для заполнения, значение "*" - для всех полей $form -> setRequiredFields(array("email", "about")); //Задать название поля $form -> setCaption("email", "Электронная почта"); //Задать поясняющий текст к полю $form -> setHelpText("news_subscribe", "Рассылка приходит не чаще раза в месяц"); //Задать дополнительные html параметры поля (атрибуты: id, class, title и пр.) $form -> setHtmlParams("about", 'id="about-me" class="text-field" rows="12"'); //Дополнительные html параметры для нескольких полей $form -> setHtmlParams(array("email", "name"), 'class="text-input"');
Дополнительные возможности
//Если значениями поля типа "enum" являются данные другой модели (внешний ключ), то их можно фильтровать $form -> filterValuesList("city", array("active" => 1, "order->asc" => "name")); //Для поля типа "date" можно задавать отображение в виде 3 select тэгов $form -> setDisplaySelects("date"); //Для поля типа "enum" можно задать отображение в виде radio кнопок $form -> setDisplayRadio("gender", 2); //Для поля типа "many_to_many" вывести значения в виде таблицы с чекбоксами //(2 - количество колонок таблицы, может быть изменено) $form -> setDisplayTable("interests", 2);
Предыдущий раздел
Создание форм