根据 perl CGI 中的选择更改背景颜色
Change background color based on selection in perl CGI
下面的代码采用在 HTML 表单中输入的姓名字段并输出“你好[输入的姓名]你好吗。此外,在表单中还有性别选择,男性或女性。我会就像 CGI 脚本将背景颜色更改为绿色(如果选择男性)和黄色(如果选择女性)。现在颜色是静态的(粉红色)。我一直试图让它工作但没有运气
#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
component parts
$qstring = $ENV{'QUERY_STRING'};
@pairs = split(/&/, $qstring);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex())/eg;
$FORM{$name} = $value;
}
&thank_you;
#}
sub thank_you {
print "Content-type: text/html\n\n";
print <<EndStart;
<html>
<body bgcolor="#ff69b4" value="F" >
<hr>
EndStart
print "<p>hello</p>\n"; print "<blockquote><em>$FORM{name} how are you </em></blockquote>\n\n";
print <<EndHTML;
</body>
</html>
EndHTML
exit(0);
部分HTML代码
What is your gender? <input type="radio" name="gen1" value="M"> male <br>
<input type="radio" name="gen2" value="F"> female <br>
name: <input type="text" name="name"><br>
<input type="radio" name="gen1" value="M"> male <br>
<input type="radio" name="gen2" value="F"> female <br>
无线电组需要共享一个名称。你也应该学会爱上标签。
<label><input type="radio" name="sex" value="male"> male</label> <br>
<label><input type="radio" name="sex" value="female"> female</label> <br>
由于您使用的是 CGI,因此我引入了一个 CGI 库。请注意,CGI 不被认为是最佳实践,您应该考虑放弃它。
CGI 对象的 param
方法可让您从查询字符串中读取表单数据。
大约二十年前,CSS 被添加到 Web 开发堆栈中。将它用于您的演示代码。
然后根据您输入的数据在 body 上设置 class。最好使用模板来完成。
另请注意:body 元素没有 "value" 属性。
#!/usr/bin/env perl
use strict;
use warnings;
use CGI; # I strongly suggest moving to Plack and FastCGI
use Template;
my $q = CGI->new;
my $sex = $q->param("sex");
if ((!defined $sex) || ($sex ne "male" && $sex ne "female")) {
$sex = "";
}
print $q->header(-type => "text/html", -charset => 'utf-8');
my $template = Template->new;
$template->process(\*DATA, {sex => $sex});
__DATA__
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf=8">
<title>Demo</title>
<style>
body {
background-color: pink;
}
.male {
background-color: green;
}
.female {
background-color: yellow;
}
</style>
</head>
<body [% IF sex %]class="[% sex | html %]"[% END %]>
<h1>Your content here</h1>
</body>
</html>
下面的代码采用在 HTML 表单中输入的姓名字段并输出“你好[输入的姓名]你好吗。此外,在表单中还有性别选择,男性或女性。我会就像 CGI 脚本将背景颜色更改为绿色(如果选择男性)和黄色(如果选择女性)。现在颜色是静态的(粉红色)。我一直试图让它工作但没有运气
#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
component parts
$qstring = $ENV{'QUERY_STRING'};
@pairs = split(/&/, $qstring);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex())/eg;
$FORM{$name} = $value;
}
&thank_you;
#}
sub thank_you {
print "Content-type: text/html\n\n";
print <<EndStart;
<html>
<body bgcolor="#ff69b4" value="F" >
<hr>
EndStart
print "<p>hello</p>\n"; print "<blockquote><em>$FORM{name} how are you </em></blockquote>\n\n";
print <<EndHTML;
</body>
</html>
EndHTML
exit(0);
部分HTML代码
What is your gender? <input type="radio" name="gen1" value="M"> male <br>
<input type="radio" name="gen2" value="F"> female <br>
name: <input type="text" name="name"><br>
<input type="radio" name="gen1" value="M"> male <br> <input type="radio" name="gen2" value="F"> female <br>
无线电组需要共享一个名称。你也应该学会爱上标签。
<label><input type="radio" name="sex" value="male"> male</label> <br>
<label><input type="radio" name="sex" value="female"> female</label> <br>
由于您使用的是 CGI,因此我引入了一个 CGI 库。请注意,CGI 不被认为是最佳实践,您应该考虑放弃它。
CGI 对象的 param
方法可让您从查询字符串中读取表单数据。
大约二十年前,CSS 被添加到 Web 开发堆栈中。将它用于您的演示代码。
然后根据您输入的数据在 body 上设置 class。最好使用模板来完成。
另请注意:body 元素没有 "value" 属性。
#!/usr/bin/env perl
use strict;
use warnings;
use CGI; # I strongly suggest moving to Plack and FastCGI
use Template;
my $q = CGI->new;
my $sex = $q->param("sex");
if ((!defined $sex) || ($sex ne "male" && $sex ne "female")) {
$sex = "";
}
print $q->header(-type => "text/html", -charset => 'utf-8');
my $template = Template->new;
$template->process(\*DATA, {sex => $sex});
__DATA__
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf=8">
<title>Demo</title>
<style>
body {
background-color: pink;
}
.male {
background-color: green;
}
.female {
background-color: yellow;
}
</style>
</head>
<body [% IF sex %]class="[% sex | html %]"[% END %]>
<h1>Your content here</h1>
</body>
</html>