stones.gif (8081 байт)

Генерирование формы

Если Вам надоело вводить параметры своей программы в браузер — создайте заполняемую форму . К таким формам привыкло большинство пользователей. Компоненты формы, которые принимают вводимые пользователем данные, иногда называются vidgets ; считается, что этот термин гораздо удобнее, чем "устройства графического ввода". Такие компоненты форм включают одно- и многостроковые текстовые поля , всплывающие меню , прокручиваемые списки , различные виды кнопок и отмечаемых блоков .

Создайте следующую HTML-страницу, которая включает форму с одним компонентом "текстовое поле" и кнопкой передачи. Когда пользователь щелкает на кнопке передачи, вызывается сценарий ice_cream , заданный атрибутом ACTION .

<!-- ice_cream.html --> <HTML>
<HEAD>
<TITLE>Ice Cream Stand</TITLE>
</HEAD>
<BODY>
<Hl>Hello Ice Cream</Hl>
<FORM ACTION="http://www.ГДЕ.org/cgi-bin/ice_cream">
Ваш любимый вкус: <INPUT NAME="flavor" VALUE="пломбир">
<P>
<INPUT TYPE="Отправить данные">
</FORM>
</BODY> </HTML>

Помните, что CGI-программа может выдавать ту выходную HTML-информацию, которую Вы ей укажете. Эта информация будет затем передаваться в тот браузер, который обратится к URL данной программы. CGI-программа может, таким образом, не только реагировать на данные, введенные пользователем в форму, но и генерировать HTML-страницу с формой. Более того, одна программа может выполнять одну за другой обе эти задачи. Все, что Вам нужно сделать,— это разделить программу на две части, которые делают разные вещи в зависимости от того, была ли программа вызвана с аргументами или нет. Если аргументов не было, программа посылает в браузер пустую форму; в противном случае аргументы содержат данные, введенные пользователем в ранее переданную форму, и программа возвращает в браузер ответ на основании этих данных.

При размещении всех компонентов программы в одном CGI-файле упрощается ее сопровождение. Цена — незначительное увеличение времени обработки при загрузке исходной страницы. Вот как все это выглядит:

# программа ответа на форму о любом сорте мороженого
# *и генерирования этой формы* (версия 3)
use CGI qw(:standard);
my $favorite = param("flavor");
print header;
print start_html("Ice Cream Stand"), h1("Hello Ice Cream");
if ($favorite) {
   print p("Ваш любимый вкус - $favorite.");
} else {
   print h1, start_form;
   print p("Пожалуйста, выберите вкус: ", textfield("flavor", "пломбир"));
   print end_form, hr;
}

<< Предыдущая страница Содержание Наверх Следующая страница >>

stones.gif (8081 байт)
2000, "Язык Perl. Создание CGI-скриптов на Perl." . Использованы материалы книг: Маслов В.В. Основы программирования на языке Perl - М.: Радио и связь, Горячая линия - Телеком. 1999. - 144 c.: - ISBN 5-256-01356-4; Рэндал Шварц, Том Кристиансен Изучаем Perl : Пер. с англ. - К.: Издательская группа BHV, 1998 - 320 c.: - ISBN 5-7315-0031-2.
Все пожелания - авторам: Алексею Машьянову , Александру Яковлеву .