use POSIX;
my $test = "";
my $elements = scalar(@array);
my $tablecount = ($elements / 100);
my $tblnum = ceil($tablecount);
my @hundred;
foreach $test (@array) {
until ($tblcnt == $tblnum){
@hundred(@array, 0, 99);
print qq~<table id="$tblcnt"><tr><td>~;
foreach $test (@hundred){
print qq~<tr><td>$test</td></tr>~;
}
print qq~</table>~;
$tblcnt++;
}
}
Run Code Online (Sandbox Code Playgroud)
UG!我正在努力学习这一点但是,我无法做到这一点!
我试图动态生成"x"个html表,每个表最多填充100行数据.
我可以获得所需的表计数,我可以循环,我可以添加,但有一件事是肯定的:我不能写代码.
这是想要的结果:
1-我有一个数组的1027行数据.
2-我希望我的脚本制作11个html表,每个表最多100行.(实际上是图层)默认情况下不会通过css看到.这样我可以在桌子上做一些隐藏,如"下一个上一页"导航.我不需要跨浏览器css的帮助.)
3-如果有更好的方法,无论如何我都能理解的方法,除了使用visible =方法之外,请详细说明!
我放弃了尝试让Perl制作100页,其中"next prev"链接到数据,所以我使用css javascript onclick = yadayada来"显示数据".
我认为在循环中移出100行数组并将这些行放在他们自己的html表中会更容易.不.
我悲惨地失败了,需要帮助.
我认为在编写任何脚本之前,你需要花更多的时间学习Perl和CGI的基础知识.
将逻辑与CGI脚本中的表示分开是很有用的.为此,我发现HTML :: Template非常有用.
以下脚本将生成一个包含100个表的HTML文档,每个表包含100行,每行10个单元格.这将花费它的甜蜜时间.
#!/usr/bin/perl
use strict; use warnings;
use CGI::Simple;
use HTML::Template;
my $tmpl = HTML::Template->new(scalarref => page_template() );
my @tables;
for my $t (1 .. 100) {
my @rows;
for my $r (1 .. 100) {
push @rows, { CELLS => [ map { CELL => $_ }, 1 .. 10 ] };
}
push @tables, { ID => "table_$t", ROWS => \@rows }
}
$tmpl->param(TABLES => \@tables);
my $cgi = CGI::Simple->new;
print $cgi->header('text/html');
$tmpl->output(print_to => \*STDOUT);
sub page_template {
return \ <<EO_TMPL
<!DOCTYPE HTML>
<html>
<head><title>Tables Example</title></head>
<body>
<TMPL_LOOP TABLES>
<table id="<TMPL_VAR ID>">
<TMPL_LOOP ROWS>
<tr>
<TMPL_LOOP CELLS>
<td><TMPL_VAR CELL></td>
</TMPL_LOOP>
</tr>
</TMPL_LOOP>
</table>
</TMPL_LOOP>
</body>
</html>
EO_TMPL
;
}
Run Code Online (Sandbox Code Playgroud)