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++;
}
}
UG!我正在努力学习这个,但是,我就是做不对!
我试图动态生成"x“个数的html表,每个表最多填充100行数据。
我可以得到所需的表数,我可以循环,我可以添加,但有一件事是肯定的:我不会写代码。
下面是我们想要的结果:
1-我有一个数组中的1027行数据。
2-我希望我的脚本制作11个html表,每个表最多100行。((实际上是层)),默认情况下通过css是不可见的。这样我就可以在表格上做一些隐藏的显示,就像“下一步”导航一样。我不需要跨浏览器css的帮助。)
3-如果有更好的方法,一种我可以理解的方法,而不是使用visible=方法,请详细说明!
我放弃了让Perl制作100个页面,其中包含指向数据的"next prev“链接,所以我求助于使用css javascript onclick=yadayada来”显示数据“。
我认为在循环中移出100行数组,并将这些行放入各自的html表中会更容易一些。不。
我失败得很痛苦,需要帮助。
发布于 2010-11-03 05:43:28
my $cnt = 0;
while (@array) {
my @rows = splice @array, 0, 100;
print qq(<table id="t$cnt">\n);
for my $row (@rows) {
print "<tr><td>$row</td></tr>\n";
}
print "</table>\n";
++$cnt;
}
您可能希望使用HTML::Table来生成超文本标记语言。
发布于 2010-11-03 05:42:48
我认为在编写任何脚本之前,您需要花更多的时间学习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
;
}
https://stackoverflow.com/questions/4082216
复制相似问题