0

我试图在每个 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}";

这两个打印语句都只给出数组中的第一个元素。

我在这里做错了什么?

4

1 回答 1

0

尝试引用 value 属性

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">';
于 2013-10-11T06:43:47.577 回答