Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [ 75 ] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103

: form

Импортаровать все методы создания заполняемых форм, например text-field О.

:html2

Импортировать все методы, которые генерируют стандартные элементы HTML 2.0.

:html3

Импортировать все методы, которые генерируют элементы, предложенные в HTML 3.0 (такие как <table>, <super> и <sub>).

:netscape

Импортировать все методы, которые генерируют расширения HTML, характерные для Netscape.

:shortcuts

Импортировать все сокрашения, генерируемые HTML (т.е. "html2" + "html3" + "netscape").

:standard

Импортировать "стандартные" возможности: "html2", "form" и "cgi".

:all

Импортировать все имеющиеся методы. Полный список приведен в модуле CGLpm, где определяется переменная %tags.

Мы будем использовать только директиву : standard. (Подробная информация об импортировании функций и переменных из модулей приведена в главе 7 книги Programming Perl, а также на тап-странице ЕхроПег(З).)

Вот как выглядит наша программа со всеми сокрашениями, которые используются в CGLpm:

#I/usr/local/bin/perl5 -w

# cgi-bin/ice cream # программа ответа на форму о любимом

# сорте мороженого (версия 2) use CGI qw(:standard); print header{);

print start html("Hello World"), hi("Hello World"); my $favorite = param("flavor"); print p{"Your favorite flavor is $favorite."); print end html () ;

Видите, насколько это проще? Вам не нужно беспокоиться о декодировании данных формы, о заголовках и HTML-тексте, если вы этого не хотите.



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

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

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

<-- ice cream.html -->

<HTML>

<HEAD>

<TITLE>Hello Ice Cream</TITLE>

</HEAD>

<BODY>

<Hl>Hello Ice Cream!</Hi>

<FORM ACTION="http: www.SOMEWHERE.оrg/cgi-bin/ice cream"> Whats your flavor? <INPUT NAME="favorite" VALUE="mint">

<p>

<INPUT TyPE="submit"> </FORM> </BODY> </HTML>

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

Некоторые броузеры позволяют обходиты:я без кнопки передачи, если форма содержит только одно поле для ввода текста. Если курсор находится в этом поле и пользователь нажимает клавишу [Enter], это считается запросом на передачу. Однако лучше здесь использовать традиционный способ.



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

#!/usr/local/bin/perl5 -w

# программа ответа на форму о любимом сорте мороженого

# *и генерирования этой формы* (версия 3) use CGI qw(:standard);

my $favorite = param("flavor"); print header;

print start html("Hello Ice Cream"), hi("Hello Ice Cream"); if ($favorite) (

print p("Your favorite flavor is $favorite,"); ) else {

print hr, start form;

print p("Please select a flavor: ", textfield("flavor","mint")); print end form, hr;

Если BO время работы с броузером вы щелкнете на ссылке, которая указывает на эту программу (и если ссылка в конце URL не содержит ?whatever), ТО увидите экран, подобный изображенному на рис. 19.2. Текстовое поле изначально содержит значение по умолчанию, но это значение заменяется данными, введенными пользователями (если они есть).

; Netscape - (Hello Ice Cieam]

File Edit Go Bookmarks Options Qiiectoiy Window Help

<>

Back

Open

Find

Go to: jhUp www perl conn/cgi-bin/ice cream

Hello Ice Cream

Please select a flavor rfaal {Document Done

Рис. 19.2. Исходная заполняемая форма



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [ 75 ] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103