2012-02-11 34 views
0

首先,我知道這很簡單,但我不是貿易的PHP開發人員,所以我很抱歉如果這對每個人都是愚蠢的。這就是說,我花了最後3個小時尋找,無法找到一種方法來做到這一點,而不需要重新發明我的輪子。當頁面爲「當前」時,我使用一個簡單的命令在網站上標記導航。使用PHP echo添加類,而不是替換它們

<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'page')) echo 'class="current"';?> href="page.php" class="tp">Page</a></li> 

在大多數情況下效果很好。但是在這種情況下,我需要連接類字符串,而不是用當前的字符串覆蓋它。我試過

...echo'class=" "."current".' 

和幾個變化,不能讓它簡單地添加類不覆蓋它。謝謝

+0

我不能完全確定是什麼問題。你是說你想添加幾個類而不是一個,但基於一個PHP變量?一旦你進一步解釋你的問題,我應該能夠給出一個更好的答案=] – Relequestual 2012-02-11 23:00:42

+0

此外,在PHP中的'和「之間的區別:http://php.net/manual/en/language.types.string.php – Relequestual 2012-02-11 23:01:28

回答

1

什麼是這樣的:

<li> 
    <a href="page.php" 
     class="<?php if (strpos($_SERVER['PHP_SELF'], 'page')) {echo 'current ';} ?>tp"> 
     Page 
    </a> 
</li> 

這樣,你會永遠擁有至少class="tp",並且,如果條件滿足,'current '(在結束注意空格這個字符串:它是重要的,必需的,這樣兩個類都用空格隔開,而不是看作一個)只會在'tp'之前插入,裏面的class="..."

+0

我編輯了我的答案,試圖提供更多的信息基本上,你總是會有'class =「tp」';並且只在需要的時候添加''current'';這似乎是你想要得到的東西 – 2012-02-11 22:46:59

+0

Pascal,非常好謝謝我應該在它已經看過這樣本來我欣賞的解釋和幫助。真棒。 – 2012-02-11 22:52:25

+0

不客氣,很高興我能幫助:-) – 2012-02-11 22:53:32

2

是在廁所的<li>不P +

理想情況下,您的菜單將來自您將循環的表格數組。如果是這樣的話;試試這個:

foreach(..){ 
    $class = strpos($_SERVER['PHP_SELF'], 'page') ? " current" : ""; 
    echo "<li><a href=\"page.php\" class=\"tp" . $class . "\">Page</a></li>"; 
} 

總體而言,可讀性,我建議不要把if聲明內嵌在HTML。

但基於您的代碼:

<?php 
$class = strpos($_SERVER['PHP_SELF'], 'page') ? " current" : ""; 
?> 
<li><a href="page.php" class="tp<?php echo $class; ?>">Page</a></li> 
+0

ATM,導航是靜態和動態中不拉。我欣賞t儘管他幫忙! – 2012-02-11 22:57:03

+0

很酷。我建議至少將你的導航欄放到一個數組中並循環,以防止冗餘代碼。 – Richard 2012-02-11 22:58:26

+0

我很想知道如何做到這一點,但我不知道。我做得很好,只需將nav包含在php中即可! – 2012-02-11 23:26:33

相關問題