2013-10-11 22 views
0

我試圖發送一個數組作爲每個CGI的隱藏類型。從PerlMonks,我收集到我們無法按原樣發送數組。因此,我加入了數組來形成一個字符串。下面的代碼是什麼樣子:在Perl中發送一個隱藏類型的數組CGI

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}"; 

這兩種打印報表只給出第一個元素在數組中。

我在這裏做錯了什麼?

回答

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">';