加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl-cgi-form

发布时间:2020-12-16 00:16:20 所属栏目:大数据 来源:网络整理
导读:一 ?此cgi既是提交前的form,也被用来处理form的提交 来自:http://www.devdaily.com/perl/perl-cgi-example-scrolling-list-html-form? 代码: (多选listbox-Multiple-choice SELECTs实例) 不带参数时即为form:http://xxxx/cgi/perl-cgi2.cgi? 当点击for


一 ?此cgi既是提交前的form,也被用来处理form的提交

来自:http://www.devdaily.com/perl/perl-cgi-example-scrolling-list-html-form?

代码: (多选listbox-Multiple-choice SELECTs实例)
不带参数时即为form:http://xxxx/cgi/perl-cgi2.cgi?
当点击form的submit提交时,实际上相当于:http://xxxx/cgi/perl-cgi2.cgi?languages=c&languages=html,此时为对form的处理结果

# !/usr/bin/perl?-Tw
#
#??PROGRAM:????scrolling_list.cgi
#
#??PURPOSE:????Demonstrate?(1)?how?to?create?a?scrolling_list?form?and
#????????(2)?how?to?determine?the?value(s)?selected?by?the?user.
#
#??Created?by?alvin?alexander,?devdaily.com.
#

#-----------------------------------#
#??1.?Create?a?new?Perl?CGI?object??#
#-----------------------------------#


use?CGI;
$query?=?new?CGI;


# ----------------------------------#
#??2.?Print?the?doctype?statement??#
#----------------------------------#


print? $query->header;


# ----------------------------------------------------#
#??3.?Start?the?HTML?doc,?and?give?the?page?a?title??#
#----------------------------------------------------#


print? $query->start_html( ' My?scrolling_list.cgi?program ');


# ------------------------------------------------------------#
#??4a.??If?the?program?is?called?without?any?params,?print???#
#???????the?scrolling_list?form.?????????????????????????????#
#------------------------------------------------------------#


if?(! $query->param)?{

???? print? $query->startform;
???? print? $query->h3( ' Select?your?favorite?programming?language(s): ');
???? print? $query->scrolling_list(-name=> ' languages ',
?????????????????- values=>[
??????????????????????? ' Basic ',
??????????????????????? ' C ',
??????????????????????? ' C++ ',
??????????????????????? ' Cobol ',
??????????????????????? ' DHTML ',
??????????????????????? ' Fortran ',
??????????????????????? ' HTML ',
??????????????????????? ' Korn?Shell?(Unix) ',
??????????????????????? ' Perl ',
??????????????????????? ' Java ',
??????????????????????? ' JavaScript ',
??????????????????????? ' Python ',
??????????????????????? ' Ruby ',
??????????????????????? ' Tcl/Tk '],
?????????????????-size=> 8,
?????????????????-multiple=> ' true ',
?????????????????-default=> ' Perl ');

???? # ?Notes:
????#?------
????#????"-multiple=>'true'"?lets?the?user?make?multiple?selections
????#????????from?the?scrolling_list
????#????"-default"?is?optional
????#????"-size"?lets?you?specify?the?number?of?visible?rows?in?the?list
????#????can?also?use?an?optional?"-labels"?parameter?to?let?the?user
????#????????see?labels?you?want?them?to?see,?while?you?use
????#????????different?names?for?each?parameter?in?your?program

????
???? print? $query->br;
???? print? $query->submit(-value=> ' Submit?your?favorite?language(s) ');
???? print? $query->endform;

}? else?{

???? # ----------------------------------------------------------#
????#??4b.??If?the?program?is?called?with?parameters,?retrieve?#
????#??the?'languages'?parameter,?assign?it?to?an?array????????#
????#??named?$languages,?then?print?the?array?with?each????????#
????#??name?separated?by?a?<BR>?tag.???????????????????????????#
????#----------------------------------------------------------#


???? print? $query->h3( ' Your?favorite?languages?are: ');
???? @languages?=? $query->param( ' languages ');
???? print? " <BLOCKQUOTE>n ";
???? foreach? $language?( @languages)?{
???????? print? " $language<BR> ";
????}
???? print? " </BLOCKQUOTE>n ";

}

# --------------------------------------------------#
#??5.?After?either?case?above,?end?the?HTML?page.??#
#--------------------------------------------------#

print? $query ->end_html;??


二 也可以实现为html+perlcgi
代码:(多选checkbox实例)

# colors.html
<html><head><title>favorite?colors</title></head>
<body>

<b>Pick?a?Color:</b><br>

<form?action= " colors.cgi "?method= " POST ">
<input?type= " checkbox "?name= " red "?value= 1>?Red<br>
<input?type= " checkbox "?name= " green "?value= 1>?Green<br>
<input?type= " checkbox "?name= " blue "?value= 1>?Blue<br>
<input?type= " checkbox "?name= " gold "?value= 1>?Gold<br>
<input?type= " submit ">
</form>
</body>
</html>

# colors.cgi
#!/usr/bin/perl?-wT


use?CGI?qw(:standard);
use?CGI::Carp?qw(warningsToBrowser?fatalsToBrowser);

print?header;
print?start_html;

my? @colors?=?( " red ",? " green ",? " blue ",? " gold ");
foreach? my? $color?( @colors)?{
??? if?(param( $color))?{
?????? print? " You?picked?$color.<br>n ";
???}
}

print?end_html;

?

?

?
其他实例radiobox

# radiobox.html
<html><head><title>Pick?a?Color</title></head>
<body>
<b>Pick?a?Color:</b><br>

<form?action= " radiobox.cgi "?method= " POST ">
<input?type= " radio "?name= " color "?value= " red ">?Red<br>
<input?type= " radio "?name= " color "?value= " green ">?Green<br>
<input?type= " radio "?name= " color "?value= " blue ">?Blue<br>
<input?type= " radio "?name= " color "?value= " gold ">?Gold<br>
<input?type= " submit ">
</form>
</body></html>

# radiobox.cgi
#!/usr/bin/perl?-wT

use?strict;
use?CGI?qw(:standard);
use?CGI::Carp?qw(warningsToBrowser?fatalsToBrowser);

my? %colors?=?(??red?????=>? " #ff0000 ",
????????????????green???=>? " #00ff00 ",
????????????????blue????=>? " #0000ff ",
????????????????gold????=>? " #cccc00 ");

print?header;
my? $color?=?param( ' color ');

# ?do?some?validation?-?be?sure?they?picked?a?valid?color
if?( exists? $colors{ $color})?{
??? print?start_html(-title=> " Results ",?-bgcolor=> $color);
??? print? " You?picked?$color.<br>n ";
}? else?{
??? print?start_html(-title=> " Results ");
??? print? " You?didn't?pick?a?color!?(You?picked?'$color') ";
}
print?end_html;

??

三 cgi实例2


?
? # !/usr/bin/perl??
?use?strict;
? use?warnings;
? use?CGI;
? use?CGI::Carp?qw(fatalsToBrowser);
?
? sub?output_top($);
? sub?output_end($);
? sub?display_results($);
? sub?output_form($);
?
? my? $q?=?new?CGI;
?
? print? $q->header();
?
? # ?Output?stylesheet,?heading?etc
?output_top( $q);
?
? if?( $q->param())?{
????? # ?Parameters?are?defined,?therefore?the?form?has?been?submitted
?????display_results( $q);
?}? else?{
????? # ?We're?here?for?the?first?time,?display?the?form
?????output_form( $q);
?}
?
? # ?Output?footer?and?end?html
?output_end( $q);
?
? exit? 0;
?
? # ?Outputs?the?start?html?tag,?stylesheet?and?heading
? sub?output_top($)?{
????? my?( $q)?=? @_;
????? print? $q->start_html(
?????????-title?=>? ' A?Questionaire ',
?????????-bgcolor?=>? ' white ',
?}
?
? # ?Outputs?a?footer?line?and?end?html?tags
? sub?output_end($)?{
????? my?( $q)?=? @_;
????? print? $q->div( " My?Web?Form ");
????? print? $q->end_html;
?}
?
? # ?Displays?the?results?of?the?form
? sub?display_results($)?{
????? my?( $q)?=? @_;
?
????? my? $username?=? $q->param( ' user_name ');
????? print? $username;
????? print? $q->br;
?
? # ?Outputs?a?web?form
? sub?output_form($)?{
????? my?( $q)?=? @_;
????? print? $q->start_form(
?????????-name?=>? ' main ',
?????????-method?=>? ' POST ',
?????);
?
????? print? $q->start_table;
????? print? $q->Tr(
??????? $q->td( ' Name: '),
??????? $q->td(
????????? $q->textfield(-name?=>? " user_name ",?-size?=>? 50)
???????)
?????);
?
????? print? $q->Tr(
??????? $q->td( $q->submit(-value?=>? ' Submit ')),
??????? $q->td( ' &nbsp; ')
?????);
????? print? $q->end_table;
????? print? $q->end_form;
?}

?

更多实例
http://www.cgi101.com/book/ch5/text.html?
http://www.comp.leeds.ac.uk/Perl/Cgi/forms.html?
?

完!?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读