我有一个具有多个复选框(所有适用)的表单,并且我尝试读取所有选择的值。...用户单击“提交”,它将重新加载页面并检查“ post”,如果是新的条目....但是它只读取选择的第一个值,我不知道我在做什么错; /
<label class="checkbox-inline"><input type="checkbox" name="sections" value="Cars">Cars</label>
<label class="checkbox-inline"><input type="checkbox" name="sections" value="Trucks">Trucks</label>
<label class="checkbox-inline"><input type="checkbox" name="sections" value="Airplanes">Airplanes</label>
<label class="checkbox-inline"><input type="checkbox" name="sections" value="Cell Phones">Cell Phones</label>
sub post
{
if($id1 == 'active')
my @sections = $POST->{sections}->[0];
}
答案 0 :(得分:2)
您的代码中存在一些明显的问题。
==
。请改用eq
。if
语法错误。在Perl中,您需要使用大括号-if (...) { ... }
。@{ $POST->{sections} }
才能获取所有值。因此,总的来说,您的子例程应该看起来像这样:
sub post
{
if ($id1 eq 'active') {
my @sections = @{ $POST->{sections} };
# Do something else with @sections
}
}
此外,我想请您在2019年认真考虑使用CGI。请阅读CGI::Alternatives并考虑使用更多现代技术。