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 回答