在應用程序中,我們正在開發HTML內容,該函數使用perl字符串寫入,稍後返回。有一個用例,我們需要根據條件的結果顯示HTML的某個部分。 既然,HTML只是標記,我的理解是不可能的。 是否有解決這個問題的方法,使用Perl或其他方法?(除了創建2個不同的模板)根據條件顯示HTML內容
謝謝!
在應用程序中,我們正在開發HTML內容,該函數使用perl字符串寫入,稍後返回。有一個用例,我們需要根據條件的結果顯示HTML的某個部分。 既然,HTML只是標記,我的理解是不可能的。 是否有解決這個問題的方法,使用Perl或其他方法?(除了創建2個不同的模板)根據條件顯示HTML內容
謝謝!
您可以很容易地根據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)通常會更好。
這傷害了我的眼睛。 :D – simbabque
我有一個大的HTML作爲一個字符串,並說一個按鈕必須顯示的基礎上的決定。 其餘必須相同。 如何在HTML之間添加perl字符串。 看起來像這樣:
。 。 。 ..... 。 。 – raita@raita - 我在答案中舉了一個例子。 – Quentin
您需要決定在構建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>
您可能希望[觀看這次談話(https://www.youtube.com/watch?v= jKOqtRMT85s)。 – simbabque