Генерирование формы
Если Вам надоело вводить параметры своей программы в браузер — создайте заполняемую форму . К таким формам привыкло большинство пользователей. Компоненты формы, которые принимают вводимые пользователем данные, иногда называются 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;
}
<< Предыдущая страница Содержание Наверх Следующая страница >>
2000,
"Язык Perl. Создание CGI-скриптов на Perl."
. Использованы материалы книг:
Маслов
В.В.
Основы программирования на языке Perl
- М.: Радио и связь, Горячая линия - Телеком. 1999. - 144 c.: - ISBN
5-256-01356-4; Рэндал Шварц, Том Кристиансен
Изучаем Perl
: Пер. с англ. - К.:
Издательская группа BHV, 1998 - 320 c.: - ISBN 5-7315-0031-2.
Все пожелания - авторам:
Алексею Машьянову
,
Александру Яковлеву
.