根据条件显示HTML内容

时间:2017-10-09 09:45:26

标签: html html5 perl if-statement

在我们开发的应用程序中,HTML内容是用perl字符串编写的,稍后会返回。有一个用例,我们需要根据条件的结果显示HTML的某个部分。 既然,HTML只是标记,我理解它是不可能的。 有没有办法使用Perl或其他东西?(除了创建2个不同的模板)

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以很容易地根据if语句在字符串中添加不同的内容。

my $thing_to_insert = "";
if (condition()) {
    $thing_to_insert = '<div>...</div>';
} else {
    $thing_to_insert = '<p>...</p>';
}
my $html = "<div>$thing_to_insert</div>";
return $html;

使用模板语言(例如Template Toolkit或Text :: Xslate)通常是更好的选择。

答案 1 :(得分:1)

您需要在构建HTML字符串时决定要显示的内容。

在基本术语中,您的代码如下所示:

my $html = '<html><head>... [lots of HTML]';

if ($we_want_to_show_the_button) {
  $html .= '<button> ... [button html] ... </button>';
}

$html .= '[lots more HTML] ... </body></html>';
但是,我应该注意,我们已经知道二十年来通过在Perl代码中连接字符串来生成HTML是一个糟糕的主意。更好的方法是将所有HTML放入模板中 - 以及在各种条件成立时显示各种位的逻辑。

如果你正在使用模板Tooikit,那可能看起来像这样:

<html>
  <head>...</head>
  <body>
    ... lots of HTML omitted ...
[% IF we_want_to_show_the_button -%]
    <button> ... </button>
[% END -%]
   ... lots more HTML ...
  </body>
</html>