2017-10-09 12 views
-1

HTMLコンテンツを開発するアプリケーションでは、後で返されるperl文字列で記述されます。条件の結果に基づいてHTMLの特定の部分を表示する必要があるケースがあります。 HTMLはマークアップだけなので、理解できません。 Perlなどを使ってこれを回避する方法はありますか?(2つの異なるテンプレートを作成する以外に)条件に基づいてHTMLコンテンツを表示

ありがとう!

+0

あなたは、[この話を見て]することがあります(https://www.youtube.com/watch?v=:あなたはテンプレートTooikitを使用している場合

、それは次のようになります。 jKOqtRMT85s)。 – simbabque

答えて

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

これは私の目を傷つける。 :D – simbabque

+0

私は文字列として大きなHTMLを持っており、その決定に基づいて1つのボタンを表示しなければならないと言っています。 残りは同じである必要があります。 どのようにしてHTML間にperl文字列を追加できますか? のようになります。 。 。 ​​ ..... 。 。 – raita

+0

@raita - 答えに例を挙げました。 – Quentin

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を生成することは恐ろしい考えであることを20年前から知られてきたこと、しかし、注意してください。さまざまな条件が満たされていれば、さまざまなビットを表示するためのロジックと一緒に、すべてのHTMLをテンプレートに入れておく方が良いでしょう。

<html> 
    <head>...</head> 
    <body> 
    ... lots of HTML omitted ... 
[% IF we_want_to_show_the_button -%] 
    <button> ... </button> 
[% END -%] 
    ... lots more HTML ... 
    </body> 
</html> 
関連する問題