2012-07-16 72 views
0

我想根據url來隱藏部分頁面內容。PHP - if html commenting

此刻,如果我輸入:

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中提到清除頁面?

+5

如果僅包含要顯示的內容而不是試圖隱藏其他所有內容,是不是更有意義? – Fluffeh 2012-07-16 08:22:00

+1

看來你只想迴應一些元素,如果品牌不是空的,對吧? – Helmut 2012-07-16 08:33:13

+0

這是真的 - 下面的if語句完美工作,但我只需要沿着「如果沒有爲品牌show x定義任何內容」的語句,如果品牌被定義也不會繪製 – flatcap 2012-07-16 08:49:57

回答

0

你甚至不需要評論;只是PHP if塊將被罰款:

<?php if ($brand) { ?> 

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

<?php } ?> 

另外,存儲你的「默認HTML」中的一個字符串,它呼應:

<?php 
if ($brand) { 
    echo $strHTML; 
} 
?> 
3

你並不需要註釋掉HTML,你只需要不輸出你不想顯示的HTML。

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

    Output HTML for something. 

<?php endif; ?> 

的「HTML的東西」不會被輸出,除非條件true ...

+0

完美謝謝 – flatcap 2012-07-16 08:36:06

+0

快速q ...如果某些東西能夠完美顯示/隱藏取決於字符串的內容,但是如果沒有選擇品牌,我將如何輸出一些html,然後如果品牌在字符串中,則不會繪製它。一種「如果沒有 - show x「 – flatcap 2012-07-16 08:44:28

+0

如果(...){...} else if(...){...} else(...)'help? – deceze 2012-07-16 08:45:22

0

不,註釋語法的位,這意味着在「註釋開始」和「註釋結束」 HTML 4和XHTML是--,因此您的語法對第1行有一個結束註釋。

您想要<!--

但是,如果HTML包含註釋,將會中斷。

對於if,您還需要一些()

如果匹配項匹配,您可能最好不要在輸出中包含HTML。

<?php 
    if (brand != "") { 
?> 
HTML here 
<?php 
    } 
?> 
0

不要隱藏你不需要的東西,只顯示你需要的東西:

<?php 

switch ($type) { 

case "apple": 
    // apple content 
break; 

case "peaches": 
    // peaches content 
break; 

... 


} 

?> 
+0

我目前正在使用開關方法,但我的推理是因爲我不想在每個開關中替換相同的默認文本 - 所以我只更換了不同的內容,並且保留了默認設置並隱藏了它將是最好的 – flatcap 2012-07-16 08:27:40

+1

''隱藏的東西從來都不好。只是不輸出它。 – Peon 2012-07-16 08:30:47

1

你需要知道,即使你「隱藏」您的HTML與意見,它是不是真的隱藏,因爲首先它仍然是在源代碼中可見,其次,你可以很容易陷入麻煩,如:

你有一個評論<!-- text 1<!-- text 2 -->內的另一個註釋,然後想關閉第一評論-->

關閉文本2實際上會關閉文本1等,所以它實際上不是一個乾淨的解決方案。如果你使用PHP,最好的做法是在你的html中打印這個代碼,你想要顯示。

如果您有$_GET['brand'],請使用ifswitch來回顯您想要顯示的內容。

編輯:它似乎只是想顯示一些元素,如果$_GET['brand']不是emtpy,對不對?在這種情況下:

if(isset($_GET['brand'])) { 
    // echo your html here... 
}