Отправка массива как скрытого типа в Perl CGI

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

Оба этих оператора печати содержат только первый элемент в массиве.

Что я здесь делаю неправильно?

Теги:
arrays
cgi

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню