CGI-сценарии
- Функция popup_menu служит для создания меню, задаваемого при помощи тэга <SELECT>. Имеет следующий синтаксис:
popup_menu(-name › 'menu_name', -values › ['bim', 'bam','bom'], -default › 'bom', -labels › \%labels);
Первый аргумент задает имя меню. Второй аргумент является ссылкой на массив, содержащий список значений, присвоенных элементам меню. Первый и второй аргументы обязательны, остальные – нет. Третий аргумент задает элемент меню, выбранный по умолчанию. Четвертый 1 аргумент является ссылкой на хеш-массив. Хеш-массив значению каждого элемента меню ставит в соответствие строку, которая будет отображаться в меню для этого элемента. Если четвертый аргумент отсутствует, то для каждого элемента меню отображается его значение, заданное вторым аргументом.
- Функция textarea соответствует тэгу <TEXTAREA>, задающему в документе текстовое поле для ввода многострочного текста. Имеет следующий синтаксис:
textarea(-name › 'region', -default › 'starting value', -rows › 10, -columns › 50);
Первый параметр, задающий имя элемента формы <ТЕХТДКЕА>, является обязательным, остальные – нет. Второй параметр задает строку, отображаемую по умолчанию. Третий и четвертый параметры задают соответственно число строк и столбцов, отображаемых в текстовом поле.
- Функция submit соответствует тэгу <INPUT TYPE=SUBMIT>, задающему кнопку передачи. Ее синтаксис:
print $query › submit(-name › 'button_name', – value › 'value');
Первый параметр является необязательным. Он задает имя кнопки, которое отображается в качестве ее названия. Нужен только для переопределения названия Submit и в тех случаях, когда надо различать несколько имеющихся кнопок передачи. Второй параметр тоже необязательный. Он задает значение, которое посылается в строке запроса при щелчке на этой кнопке.
- Функция reset соответствует тэгу <INPUT TYPE=RESET>, задающему кнопку сброса. Может иметь параметр, переопределяющий название Reset, отображаемое по умолчанию.
- Функция end_htmi завершает HTML-документ, добавляя тэги </BODY></HTML>.
Пример 15.8 содержит также код, который не связан с созданием формы Он состоит из одного условного оператора, в котором в качестве условия используется значение, возвращаемое функцией paramo. Эта функция используется также внутри блока условного оператора. Разберем для чего она применяется. При помощи функции paramo модуля CGI можно выполнить следующие действия.
- Получение списка имен параметров, переданных сценарию.
Если сценарию переданы параметры в виде списка пар "имя=значение" функция paramo без аргументов возвращает список имен параметров сценария:
@names = param;
- Получение значений именованных параметров.
Функция paramo с единственным аргументом – именем параметра, возвращает значение этого параметра. Если параметру соответствует несколько значений, функция param о возвращает список этих значений:
@values = param('language');
…в противном случае – одно значение:
$value = param('regname');
- Задание значений параметров.
param(-name › 'language', – values › ['russian', 'english', 'french']);
Можно задавать значения параметров, используя вызов функции param о в форме с позиционными параметрами, но тогда нужно знать порядок следования этих параметров:
param ('language', 'russian', 'english', 'french');
При помощи функции param () можно устанавливать начальные значения элементов формы или изменять ранее установленные значения.