我是Perl CGI的新手。我的代码如下所示。
#!c:/xampp/perl/bin/perl.exe
use warnings;
use CGI;
my $q = CGI->new;
print $q->header;
print "<html><head><title>Test</title></head>\n";
print '<body>';
@server = $q->param('sel');
if (!@server)
{
print '<p> please select a checkbox</p>';
exit;
}
else
{
print '<form action="next.pl" method="POST" id="sel" >';
foreach my $i (@server) {
print '<input type="checkbox" name="DEL" value="';
print $i;
print ' checked ">';
print $i;
print '<br />';
}
print '<input type="submit" value="Kill">';
print '<form>';
print '</body></html>';
}
在代码的第一部分中,我使用复选框名称“sel”获取从上一个程序中勾选的复选框列表,并将其存储在阵列服务器中。我在foreach循环中使用相同的数组,并使其成为带有名称的复选框。
现在在上面的代码中我不希望显示复选框。我只想提交按钮进行显示。当我单击提交按钮时,我希望我在表单中选中的复选框转到下一页。
我怎么能做到这一点。请帮忙。
答案 0 :(得分:0)
隐藏复选框的一种方法是使用<span>
标记:
use strict;
use warnings;
use CGI;
my $q = CGI->new;
print $q->header;
print $q->start_html(-title => 'Test');
my @server = $q->param('sel');
if (!@server) {
print $q->p('please select a checkbox');
print $q->end_html();
exit;
} else {
print $q->start_form(-method => "POST",
-action => "next.pl",
-id => "sel");
print $q->span({hidden=>1},
$q->checkbox_group(-name => "DEL",
-values => \@server,
-default => \@server,
));
print $q->submit(-name => "submit",
-value => "Kill");
print $q->end_form();
print $q->end_html();
}
我更喜欢使用CGI.pm提供的HTML构建方法。有助于将HTML保留在Perl之外。