首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Perl中动态生成每个包含100行的HTML表?

如何在Perl中动态生成每个包含100行的HTML表?
EN

Stack Overflow用户
提问于 2010-11-03 05:23:30
回答 2查看 2.6K关注 0票数 1
代码语言:javascript
运行
复制
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表中会更容易一些。不。

我失败得很痛苦,需要帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-03 05:43:28

代码语言:javascript
运行
复制
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来生成超文本标记语言。

票数 3
EN

Stack Overflow用户

发布于 2010-11-03 05:42:48

我认为在编写任何脚本之前,您需要花更多的时间学习Perl和CGI的基础知识。

在CGI脚本中将逻辑与表示分开是很有用的。为此,我发现HTML::Template非常有用。

下面的脚本将生成一个包含100个表格的HTML文档,每个表格有100行,每行10个单元格。做这件事会花很多时间的。

代码语言:javascript
运行
复制
#!/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
    ;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4082216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档