stones.gif (8081 байт)

Другие компоненты формы

Теперь, когда Вы знаете, как создавать в форме простые текстовые поля и заполнять их, Вам, наверное, интересно будет узнать, как создавать компоненты формы других типов — кнопки, отмечаемые блоки и меню.

Сейчас мы рассмотрим более развитую версию нашей программы. В частности, мы включили в нее новые компоненты формы: всплывающие меню, кнопку передачи (которая называется order ) и кнопку очистки полей формы, позволяющую стереть все данные, введенные пользователем. Всплывающие меню делают именно то, о чем говорят их имена, но аргументы, указанные в popup_menu , могут озадачить Вас — пока Вы не прочитаете следующий раздел, Ссылки . Функция textfield() создает поле для ввода текста с указанным именем.

#!/usr/local/bin/perl5 -w
use strict;
# ввести объявления переменных и выполнить заключение в кавычки
use CGI qw(:standard);
print header;
print start_html("Ice Cream Stand"), h1("Hello Ice Cream");
if (param()) {
   my $who = param("name");
   my $flavor = param("flavor");
   my $scoops = param("scoops");
   my $taxrate = 1.27;
   my $cost = sprintf("%.2f", $taxrate * (1.00 + $scoops * 0.25));
   print p("Ok, $who&Co, получают $scoops порции сорта \"$flavor\" за \$$cost.");
} else { # первый проход, представить незаполненную форму
   print hr();
   print start_form();
   print p("Как вас зовут? ", textfield("name"));
   print p("Сорт: ", popup_menu("flavor", ['пломбир','вишневое','шоколадное']));
    print p("Сколько порций? ", popup_menu("scoops", [2..4]));
    print p(submit("Отправить данные"), reset("Очистить"));
    print end_form(); hr();
}
print end_html;

Проверить, как работает эта программа можно здесь .

Как Вы помните, функция param() при вызове ее без аргументов возвращает имена всех полей формы, которые были заполнены. Таким образом Вы можете узнать, была ли заполнена форма перед вызовом программы. Если у Вас есть параметры, это значит, что пользователь заполнил некоторые поля существующей формы, поэтому на них нужно ответить. В противном случае следует генерировать новую форму с расчетом на вторичный вызов той же самой программы.

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

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.
Все пожелания - авторам: Алексею Машьянову , Александру Яковлеву .