0

私はPerlが初めてで、HTMLページの一連のチェックボックスがチェックされているかどうかを確認しようとしています。各チェックボックスには、Perl の配列に追加したい異なる数値があります。undef 値を取得し続けます。これが機能しない理由でウェブをくまなく調べ、最終的に分解して助けを求めました。今のところ、ログで取得した値を表示したいだけです。チェックボックスをオンにすると、結果に (1, 2) が表示されることを期待しています。以下のコードに何か問題があるか、または「未定義」の配列を取得している理由について提案を提供できますか? Perl から問題のチェックボックスへの接続をテストする方法はありますか?

HTML:

<input type="checkbox" name="Shipping" id="checkFXG" value="1" enabled />
<input type="checkbox" name="Shipping" id="checkFX2" value="2" enabled />

パール:

use CGI;
...

sub updateShipping;
    my $p;
    my $self = shift;
    my $cgi;

    my $sIDquery = CGI->new;
    my $param = $sIDquery->Vars;
    my @sID = $param->{'Shipping'};          # Grab VALUE from checkbox
    my $sID;

    foreach $sID(@sID) {                     # Loop through array displaying each Shipping ID
        warn "**** sID : [$sID]";
    }
}
4

1 に答える 1

2

同じ名前の複数のパラメーターを取得するには、Vars メソッドを使用せず、次のようにします。

my @values = $sIDquery->param('Shipping');

Vars を使用したい場合はほとんどありません。特に、存在しないパラメータ (チェックボックスなど) や複数の値を持つ可能性のあるパラメータに対して、希望どおりの結果が得られる可能性はほとんどありません。

于 2013-04-24T19:44:49.640 に答える