【问题标题】:How i can generate number of rows, columns in table using perl loop in mojolicious?如何在 mojolicious 中使用 perl 循环生成表中的行数和列数?
【发布时间】:2021-01-09 14:07:36
【问题描述】:

我在 mojolicious 中有一个任务,我必须将 html 表中的行数传递给 模板文件夹,在模板文件夹中,基于行数,它必须生成我要求的必要数量的行,为此我必须使用循环。这个想法是,我写下我想要的 roes 数量,例如 3,提交,然后程序生成我想要的正确数量。也许我应该使用哈希?

我的控制器:

my @rownum = (1,2,3,4,5);

$self->render("table/tablerow", rownum => \@rownum);

这是模板中的代码。

<html>
<head>
<style type="text/css">
TABLE {
 border-collapse: collapse;  
}
TD, TH {
 padding: 10px; 
 border: 1px solid black; 
}
</style>
</head>
<body>
<table>
   <tr><th>Heading 1</th><th>Heading 2</th></tr>
   <tr><td>Cell 1</td><td>Cell 2</td></tr>
</table>
</body>
</html>

【问题讨论】:

  • 什么模板系统? ep?
  • 是的,没错,我想用 ep 在那里写 perl 代码。

标签: html perl mojolicious


【解决方案1】:

这是一个使用Mojo::Template 的示例。我在变量中传递行,我不在乎计数是多少。在模板中,我只是为列表中的每个元素输出一些内容:

use v5.10;
use Mojo::Template;

my @rows = (1,2,3,4,5);

my $mt = Mojo::Template->new;
say $mt->vars(1)->render(<<'EOF', { rows => \@rows } );
% for (@$rows) {
<%= "Row $_\n" =%>
% }
EOF

Mojo::Template 还有很多其他方法可以做到这一点。

【讨论】:

    【解决方案2】:

    由于您已将@rownum 的引用传递给您的模板,因此可以直接在模板中使用它。然后,您可以在模板中嵌入一个 Perl 循环并遍历取消引用的数组。

    <table>
       <tr><th>Heading 1</th><th>Heading 2</th></tr>
       % for my $n (@$rownum) {
       <tr><td>Cell <%= $n %></td><td><%= $n %></td></tr>
       % }
    </table>
    

    这会生成这个表

    <table>
       <tr><th>Heading 1</th><th>Heading 2</th></tr>
       <tr><td>Cell 1</td><td>1</td></tr>
       <tr><td>Cell 2</td><td>2</td></tr>
       <tr><td>Cell 3</td><td>3</td></tr>
       <tr><td>Cell 4</td><td>4</td></tr>
       <tr><td>Cell 5</td><td>5</td></tr>
    </table>
    

    【讨论】:

      【解决方案3】:

      感谢您的回答,这也是我的解决方案。 我的控制器和参数:

      my $rownum= $self-&gt;param('rownumber'); print $rownum; $self-&gt;render('table/tablerow', 'rownumber' =&gt; $rownum,);

      我在模板中的循环是 html.ep %foreach (1..$rownumber) { &lt;tr&gt; &lt;th&gt; &lt;%= $_ %&gt; &lt;/th&gt; &lt;td&gt; &lt;%= $_ %&gt; &lt;/td&gt; &lt;/tr&gt; % }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-25
        • 2021-11-16
        • 1970-01-01
        • 2014-12-11
        • 2021-08-05
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        相关资源
        最近更新 更多