$f->add_element(array("name"=>"pref_cities", "type"=>"select", "options"=>$c, "minlength"=>"1",
"size"=>1,
"valid_e"=>"Please select a preferred city of work"));
В данном случае, когда пользователь выбирает в выпадающем списке Nagpu г, значением pref_cities становится Nagpu г. Однако не исключено, что может понадобиться выбирать город и передавать определенный код/ID в качестве значения _cities. Такую задачу решает следующий код:
$с = array(array("label"=>"Select a City","value"=>0), array("label"=>"Nagpur","value"=>1), array("label"=>"Mumbai","value"=>2), array("label"=>"Bangalore","value"=>3),
;
$f->add_element(array("type"=>"select",
"name"=>"pref_cities", "options"=>$c,
;
"size"=>1, '■;'.
"valid_e"=>"Please select a preferred city of work"));
В этом примере при выборе элемента списка Nagpur значением pref_cities становится
Более полное описание атрибутов и их семантики можно найти в документации по ООН Forms.
Проверка формы
Определив форму, надо добавить проверку факта передачи формы на сервер:
/'/Убедиться, что форма передана на сервер, и выполнить проверку данных if (isset($submit)) {
Если переменная установлена, мы считаем, что форма действительно
передана пользователем на сервер, и проверяем ее на наличие ошибок с помощью метода validate() класса ООН Forms. Этот метод возвращает сообщение об ошибке, установленное для элемента с некорректными данными, либо Null, если все в порядке:
//Проверка наличия ошибок в данных if ($err = $f->validate()) {
Лучше всего при обнаружении ошибок во входных данных показать пользователю ту же самую форму, но с заполненными первоначально полями, данные в которых можно исправить. Это удобная для пользователя тактика, которая избавляет его от массы хлопот и реализуется с помощью метода 1о- ad_defaults() класса ООН Forms:
$f->load_defaults(); } else { // Обработать данные, если ошибок нет
Метод загружает введенные пользователем значения в те эле
менты формы, которые корректны. Теперь ясно, почему надо передать данные серверу и обработать, прежде чем выводить форму в броузер. После того как форма выведена на веб-страницу, уже нельзя загрузить в элементы формы те значения, которые ввел пользователь: