要用CGI实现一个简单的东西,总结一下perl CGI。
- 调入CGI module
在脚本开始使用use CGI;
- CGI框架
- my $query->CGI->new(); #生成CGI对象
- print $query->header; #创建header
- print $query->start_html(); #开始html
- ...
- ...
- ...
- print $query->startform(); #开始表单
- ...
- ...
- ...
- print $query->endform(); #结束表单
- print $query->end_html(); #结束html
在$query->header(),$query->start_html,$query->startform中有多重参数选项,暂且搁置一边,使用默认。
- 一些函数
- h1(),h2...函数:生成标题,如$query->h1("level 1 header")将字符串设置为一级标题格式。
- textfield():用法为$query->textfield("var"),生成单行文本输入框。
其完整参数为:
- print textfield(-name=>'field_name',
- -default=>'starting value', #未输入情况下的默认值
- -size=>50, #规定文本框的字符宽度
- -maxlength=>80); #规定最多输入多少个字符
- checkbox():创建一个布尔值复选框。完整参数:
- checkbox(-name=>'checkbox_name', #给复选框命名
- -checked=>1, #值为1表示默认情况就是选中的
- -value=>'ON', #复选框选中情况下的值,未提供选项时默认为"ON"
- -label=>'CLICK ME'); #显示在复选框后出现的字段,如下图
- checkbox_group():创建一个复选框组,各个选项之间不排斥,完整参数:
- print checkbox_group(-name=>'group_name', #复选框组的名字
- -values=>['eenie','meenie','minie','moe'], #各个复选框选中时候的值
- -default=>['eenie','moe'], #默认选中的值
- -linebreak=>'true', #为0表示各个选项横排,非0则竖排对其
- -disabled => ['moe'], #无法选中显示灰色
- -labels=>\%labels, #紧跟在复选框后面显示出来的标签字段
- -attributes=>\%attributes);
- radio_group():单选按钮,如设置性别选项时即能用到,格式:
- radio_group( -name=>'group_name',
- -values=>['val1','val2','val3', ...],
- -default=>'val2',
- -linebreak=>1,
- -labels=>\%labels
- );
- popup_menu():实现下拉菜单:
- print popup_menu(-name=>'menu_name',
- -values=>['eenie','meenie','minie'],
- -default=>['meenie','minie'],
- -labels=>\%labels,
- -attributes=>\%attributes);
- submit(),创建提交按钮,
- print submit(-name=>'button_name',#按钮名称
- -value=>'value'); #提交的值????
- reset(),创建reset按钮,作用是将各表单项恢复到上次调用cgi脚本时输入的参数,而不是恢复到默认选项。
- default(),恢复到默认选项。
- 将以上各函数实现代码如下,如果是windows需要开iis。
- #!/usr/bin/perl
- use warnings;
- use strict;
- use CGI;
- my $query = CGI->new();
- print $query->header;
- print $query->start_html("The Object_Oriented CGI and Forms");
- print $query->h2("Example using Forms with Pop-up Menus");
- my %labels= {'eenie' => 'label_eenie',
- 'meenie' => 'label_meenie',
- 'ninie' => 'label_ninie',
- 'moe' => 'label_moe',
- };
- print $query->startform;
- print "This is a textfield:";
- print "
"; - print $query->textfield(-name=>'field_name',
- -default=>'starting value',
- -size=>50,
- -maxlength=>80);
- print "
"; - print "
"; - print "This is a checkbox:";
- print "
"; - print $query->checkbox(-name=>'checkbox_name',
- -checked=>1,
- -value=>'ON',
- -label=>'CLICK ME');
- print "
"; - print "
"; - print "This is a checkbox_group";
- print "
"; - print $query->checkbox_group(-name=>'group_name',
- -values=>['eenie','meenie','minie','moe'],
- -default=>['eenie','moe'],
- -linebreak=>'true',
- -disabled => ['moe'],
- #-labels=>\%labels,
- #-attributes=>\%attributes
- );
- print $query->submit();
- print $query->defaults(-name=>'clear all');
- print $query->endform;
- print $query->end_html;
还有其他,后面再说了。
阅读(3322) | 评论(0) | 转发(0) |