Зауваження. Якщо startform викликається без аргументів, кнопка Submit повертає введені дані тій же формі. Нижче розповідається, як використовувати таку можливість.

Працюємо з текстовими полями.Для створення текстового поля, що дозволяє вводити текст, використовується CGI-метод textfleld. У прикладі нижче створюється текстове поле, предназначен­ное для зберігання імені користувача.

#!/usr/local/bin/perl

"Please enter your name: ',

$co->textfield('text')

Читання даних з елементів управління HTML.Елементи управління створені (точніше, поки лише текстове поле), але як рахувати з них дані? Коли користувач натискуватиме на кнопку Submit, броузер відправить дані форми сценарію cgi2.pl; CGI-метод param в нім якраз і призначений для читання даних. Йому досить передати ім'я, привласнене текстовому полю, в даному випадку — 'text' (див. попередній розділ), а вивід виконується таким чином:

#!/usr/local/bin/perl

$co = new CGI;

print "Your name is: ", $co->em($co->param( 'text')), ".";

Метод em створює мітку <ІМ>, яка більшістю броузеров сприймається як вказівка на перехід до курсивного зображення.

Працюємо з текстовими областями.Текстова область може містити декілька рядків тексту. От як в cgil.pl створюється текстова область, призначена для введення будь-якої думки користувача (задається як опис самої області в 10 рядків по 60 символів в кожній, так і деякого тексту за замовчуванням, а також імені області, 'textarea'):

#!/usr/local/bin/perl

$з = new CGI; print "Please enter your opinion; ", $co->p,

$co->' textarea' (

-name => 'textarea'

-default => 'No opinion'

-rows => 10,

-columns => 60 )

А у фрагменті нижче, CGI-метод param прочитує текст і виводить дані анкети:

print "Your opinions are: ", $co->em($co->param('textarea')), ".";

Працюємо з кнопками з незалежною фіксацією.Кнопки з незалежною фіксацією (check­buttons) зазвичай об'єднуються в групу, що дозволяє повертати імена вибраних эле­ментов управління в одному списку. У фрагменті коду, приведеному нижче, за допомогою CGI-метода, checkbox_group якраз і створюється така група. Їй привласнюється ім'я, кноп­ки отримують підписи і задаються пункти, вибрані за замовчуванням при виведенні Web-сторінки:

#!/usr/local/bin/perl $со = new CGI; print

"Please indicate what products you use. ",$co->p

$co->checkbox_group(

-name => 'checkboxes'

-values => ['Shampoo', 'Toothpaste', 'Bread', 'Cruise missiles'],

-defaults => ['Bread', 'Cruise missiles'] )

Код нижче призначений для перевірки і виведення вибору користувача. В даному випадку param повертає список імен помічених кнопок, тому було потрібно виклик функції join, об'єднуючою елементи списку в рядок:

print "You use these products: ", $co->em(join(", ", $co->param('checkboxes'))),

Працюємо із списками.Список з готовими значеннями можна прокрутити у разі, коли неможливо одночасно вивести па екран всі його рядки. Цей елемент управління созда­ется CGI-методом scrolling_list. У сценарії cgil.pl список дозволяє вибрати рівень доходів. Він називається 'list' і включає рядки 'Highest', 'High', 'Medium' і 'Low', причому за замовчуванням вибране 'High':

#! /usr/local/bin/perl

$з = new CGI; print "Please indicate your income level: ",$co->p

$co->scrolling_list('list'

['Highest', 'High', 'Medium', 'Low'], 'High' )

Нижче наведений приклад читання і виведення вибраного рядка:

print "Your income level is: ", $co->em($co->param('list')), ".";

Працюємо з кнопками із залежною фіксацією.Кнопки із залежною фіксацією (radiobuttons) дозволяють зробити однозначний вибір з декількох значень. Наприклад, в cgil.pl створюється сім таких кнопок. Вони об'єднуються в групу 'radios' і набувають значень від '1' до '7', а мітки прикріпляються до них за допомогою хэша %labels:

#!/usr/local/bin/perl

$з = new CGI;

$labels{'1'}= 'Sunday'; $labels{'2'} = 'Monday':

$labels{'3'}= 'Tuesday'; $labels{'4'} = 'Wednesday';

$labels{'5' }= 'Thursday' $labels{'6'} = 'Friday';

$labels{'7'}= 'Saturday';

print "Please indicate your day of а week: ", $co->p,

$co->radio_group (

-name->' radios'

-values=>['1', '2', '3', '4', '5', '6', '7']

-default=>'1'

-labels=>\%labels )

Нижче наведений приклад читання і друку вибраного елементу, узятий з сценарію cgi2.pl:

print "Today is day ', co->param('radios') " of the week.";

Працюємо із списком, що розкривається.У HTML список, що розкривається, є набором елементів, який користувач може відкрити натисненням кнопки, що зазвичай супроводиться зображенням стрілки вниз. Користувач може вибрати елемент списку, а ви - визначити, на чому він зупинився. От як робиться вибір кількості непроханої пошти, яку користувач згоден отримувати (приклад узятий з нашої анкети). Елементи задаються за допомогою методу popup_menu:

#!/usr/local/bin/perl

$з = new CGI; print

$co->popup_menu (

-name => 'popupmenu'

-values => ['Very much', 'A lot','Not so much', 'None'] )

Далі наведений приклад читання і друку вибору користувача, узятий з сценарію cgi2.pl:

print "How much unsolicited mail you like"

$co->param('popupmenu');

Працюємо з прихованими полями даних.Дані, що зберігаються в прихованому полі на Web-сторінці, невидимі для користувача. (Це зручно, коли сценарій чекає отримати деякі незмінні відомості про сторінку.) Такі поля створюються таким чином:

#!/usr/local/bin/perl

$з = new CGI; print

$co->hidden(-name=>'hiddendata', -default=>'Rosebud')

І ось як вивести ці дані з cgi2.pl:

print "The hidden data is: ",

join(", ", $co->param('hiddendata'));

Створюємо кнопки відміни і підтвердження.Аби відправити на сервер дані форми, користувач повинен натискувати кнопку Submit. Вона створюється CGI-методом submit. Аналогічно, кнопка Reset, яка очищає дані форми, створюється методом reset. Нижче наведений приклад коду, що створює кнопки Submit і Reset на Web-сторінці:

#!/usr/local/bin/perl

$з = new CGI; print

$co->center(

$co-> submit(-value=>'Отправить')

$co->reset(-value=>'Отмена'))

Після натиснення на кнопку Submit дані вирушають сценарію cgi2.pl.

Закриваємо HTML-форму.Всі елементи управління, описані раніше, є частиною однієї форми анкети, створеної в cgil.pl. Для відкриття форми використовувався метод startform, а для її закриття — endform:

#!/usr/local/bin/perl

$з = new CGI; print

$co->endform

Закриваємо HTML-документ.Аби завершити роботу з HTML-документом, використовуйте метод end_html, який виводить теги </BODY></HTML>. От як закінчується сторінка з анкетою в сценарії cgil.pl:

#!/usr/local/bin/perl $со = new CGI;

print

$co->end_html;

На цьому cgil.pl кінчається. Коли користувач введе дані і натискуватиме кнопку Submit, буде викликаний сценарій cgi2.pl, який виведе зведення анкети.

Функціонально-орієнтоване CGI-програмування.До цих пір ми використовували об'єктно-орієнтовані методи. Проте пакет CGI має і функціонально-орієнтований інтерфейс (Втім, при зверненні до нього деякі можливості об'єктно-орієнтованою інтерфейсу стають недоступними). У прикладі нижче використовується функціонально орієнтований інтерфейс пакету CGI. Код генерує текстове поле з пропозицією ввести ім'я користувача. Після натиснення на кнопку Submit дані повертаються до того ж CGI-сценарию, який за допомогою функції рагаm виводить введене ім'я в нижній частині Web-сторінки:








Дата добавления: 2016-04-02; просмотров: 465;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.