2011-05-25 164 views
0
<li><a class="<?php if($_GET['q']=='addons.html');echo 'current';?>" href="addons.html">test</a></li> 

    <li><a class="<?php if($_GET['q']=='technicalsupport.html');echo 'current';?>" href="technicalsupport.html">example</a></li> 


    <li><a class="<?php if($_GET['q']=='center.html');echo 'current';?>" href="center.html">center</a></li> 

    <li><a class="<?php if($_GET['q']=='about.html');echo 'current';?>" href="about.html">about</a></li> 

爲什麼這些都是添加「當前」當前頁面?我想你的if語句的結束)後到class="current"僅添加到當前頁面我的php代碼有什麼問題?

回答

7

取出;。即

<?php if($_GET['q']=='about.html');echo 'current';?> 

...變爲:

<?php if($_GET['q']=='about.html') echo 'current';?> 
+0

謝謝你,我太不小心了! – zhuanzhou 2011-05-25 05:34:55

+0

+1 @ bradley.ayers :) welll – Harsh 2011-05-25 05:36:26

+0

我會重新考慮這一點,因爲它只是創造了很多重複的代碼。看看我的例子,下面是一個功能包裝的解決方案,更短,更清潔的重用。 – Jakub 2011-05-26 15:05:30

1

我bradley.ayers同意,但是我還要附上如果條件內的整個類的標籤,就像這樣。

<a <?php if($_GET['q']=='addons.html') echo 'class="current" ';?>href="addons.html"> 

這樣,所有錨所述病症是真正最終不會包含空class=""標籤

1

首先,檢查$ _GET [「Q」]存在,所以你贏了」 t得到一個「未定義索引」的通知。

<li> 
    <a href="addons.html" <?php echo (isset($_GET['q']) && $_GET['q'] == 'addons.html' ? 'class="current"' : ''); ?>>test</a> 
</li> 
1

我會做一點清潔劑,像這樣:

<?php echo ($_GET['q']=='about.html') ? 'current': ''; ?> 

,甚至它優化成一個函數:

<?php 
function set_current($page){ 
    return ($_GET['q'] == $page) ? 'current': ''; 
} 
?> 

和你的線,然後變得更清潔:

<?php echo set_current('about.html'); ?>