根据perl CGI中的选择更改背景颜色

时间:2015-11-04 21:37:46

标签: html 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($1))/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>

1 个答案:

答案 0 :(得分:3)

<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开发堆栈中。将它用于演示代码。

然后根据您的输入数据在主体上设置类。最好使用模板完成。

另请注意:没有&#34;值&#34; body元素的属性。

#!/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>