使用Perl获取Checked并将VALUE放入数组中

时间:2013-04-24 19:19:53

标签: arrays perl checkbox cgi

我是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 />

PERL:

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

1 个答案:

答案 0 :(得分:2)

要获取具有相同名称的多个参数,请不要使用Vars方法,执行:

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

很少有您想要使用Vars的情况。特别不可能对可能不存在的参数(例如复选框)执行所需操作,或者可能具有多个值。