在perl CGI中将数组作为隐藏类型发送

时间:2013-10-11 02:25:29

标签: php html arrays perl cgi

我试图在每个CGI中将数组作为隐藏类型发送。从PerlMonks开始,我收集到我们无法按原样发送数组。因此,我加入了数组以形成一个字符串。这是代码的样子:

 my @names;
 my $name, $value;
 foreach $pair (@pairs)
 {       ($name, $value) = split(/=/, $pair);
         $value =~ tr/+/ /;
         $value =~ s/%(..)/pack("C", hex($1))/eg;
         chomp($value);
         push (@names, $value);

 }
 pop (@names);
 print '<form action="test-plan.cgi"  method="POST">';
 print "<input name=\"typ\" value=\"red\" type=\"radio\" /><b>RED</b>";
 print "<input name=\"typ\" value=\"blue\" type=\"radio\" /><b>BLUE</b>";
 print "<input name=\"typ\" value=\"green\" type=\"radio\" /><b>GREEN</b>";

my $namestring = join("-",@names);
print "<input type=\"hidden\" name=\"these_names\" value=$namestring>";
print "<br /><br />$namestring";
print '<br /><input name="thisdata" type="submit" value="Select">';

理想情况下,这应该发送选定的单选按钮和名为$namestring的字符串。

这就是抓住它的原因:

print "$FORM{typ}";
my @names;
@names = split(/-/,$FORM{these_names});
print @names;
print "$FORM{these_names}";

这两个print语句只给出了数组中的第一个元素。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试引用值属性

my $namestring = join("-",@names);
print "<input type=\"hidden\" name=\"these_names\" value=\"$namestring\">";
print "<br /><br />$namestring";
print '<br /><input name="thisdata" type="submit" value="Select">';