0

URLに応じてページコンテンツの一部を非表示にしたいのですが。

現時点で入力した場合:

example.co.uk/index.php?brand=apple

次に、アップルのコンテンツが表示されますが、ブランドが表示されていない場合に非表示にしたいデフォルトのdivがページにいくつかあります。

私は次のように考えていました:

    <?php if brand==""
echo "<!----- comment out all the default HTML"
/>

default html here

<?php if brand==""
echo "-->"
/>

URLにブランドが記載されていない場合、それはページをクリアするための正しい方法でしょうか?

4

5 に答える 5

3

HTMLをコメントアウトする必要はありません。表示したくないHTMLを出力しないようにするだけです。

<?php if (/* something */) : ?>

    Output HTML for something.

<?php endif; ?>

true条件が...でない限り、「HTMLforsomething」は出力されません。

于 2012-07-16T08:23:17.567 に答える
1

コメントでhtmlを「非表示」にしても、実際には非表示になっていないことに注意する必要があります。最初はソースコードに表示されたままであり、次に、次のような問題が発生しやすいためです。

この中に1つのコメント<!-- text 1と別のコメント<!-- text 2 -->があり、最初のコメントを閉じたいと考えてい-->ます。

テキスト2を閉じると、実際にはテキスト1などが閉じられます。したがって、これは実際にはクリーンなソリューションではありません。PHPを使用している場合は、このコードをHTMLに出力することをお勧めします。これは、表示したいものです。

その後、またはを$_GET['brand']使用して、表示したいコンテンツをエコーする場合。ifswitch

編集:空でない場合は、いくつかの要素のみを表示したいようです$_GET['brand']よね?その場合:

if(isset($_GET['brand'])) {
    // echo your html here...
}
于 2012-07-16T08:27:40.247 に答える
0

コメントも必要ありません。ブロックがうまくいく場合はPHPだけです:

<?php if ($brand) { ?>

...html - note this section is bounded by PHP, but is not PHP code...

<?php } ?>

または、「デフォルトのhtml」を文字列に保存し、エコーします。

<?php
if ($brand) {
  echo $strHTML;
}
?>
于 2012-07-16T08:22:04.087 に答える
0

いいえ、HTML 4およびXHTMLで「コメントの開始」と「コメントの終了」を意味するコメント構文のビットは、--構文の1行目に閉じたコメントがあるためです。

あなたが欲しい<!--

ただし、HTMLにコメントが含まれている場合、これは機能しなくなります。

()また、のためにいくつかが必要ですif

一致するものが一致する場合は、出力にHTMLをまったく含めないのがおそらく最善です。

<?php 
    if (brand != "") {
?>
HTML here
<?php
    }
?>
于 2012-07-16T08:23:36.647 に答える
0

必要ないものを隠すのではなく、必要なものだけを表示します。

<?php

switch ( $type ) {

case "apple":
  // apple content
break;

case "peaches":
    // peaches content
break;

...


}

?>
于 2012-07-16T08:24:40.140 に答える