Я пытаюсь отправить массив как скрытый тип в 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}";
Оба этих оператора печати содержат только первый элемент в массиве.
Что я здесь делаю неправильно?
попробуйте указать атрибут 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">';