2011-10-19 87 views
0

我有一個小的PHP的網站,具有經由include_once包括菜單。我需要爲每個頁面的當前菜單項添加一個HTML類。添加類到PHP菜單

因此,如果用戶點擊一個鏈接,進入該頁面的新頁面將與帶class =「當前」新菜單項加載。我怎麼能這樣做呢?

+6

相當困難沒有看到任何代碼,請考慮將您的HTML菜單,它是如何在你的PHP生成的;另外,你如何告訴當前頁面($ _GET數組或其他) –

回答

1

比方說,你寫你的菜單是這樣的:

<ul> 
<li><a href="link1.com?menu=1"> Link1 </a></li> 
<li><a href="link2.com?menu=1"> Link2 </a></li> 
<li><a href="link3.com?menu=1"> Link3 </a></li> 
</ul> 

這裏是一個很好的老PHP4風格的解決方案:磷

<?php 
//you get which link was clicked 
if(isset($_GET['menu']) $menu = $_GET['menu']; 
else $menu = 1; 

$1 = $2 = $3 = ""; //you create 3 empty strings 
switch($menu){ //you assign the correct string with your css class name 
case "1": $1 = 'class="current"';break; 
case "2": $2 = 'class="current"';break; 
case "3": $3 = 'class="current"';break; 
} 
?> 
//echo the variables into the menu anchors (<?=$1?> is equivalent to <? echo $1; ?>) 
<ul> 
<li><a href="link1.com?menu=1" <?=$1?> >Link1</a></li> 
<li><a href="link2.com?menu=2" <?=$2?> >Link2</a></li> 
<li><a href="link3.com?menu=3" <?=$3?> >Link3</a></li> 
</ul> 

您也可以將<?=$1?><li>或其他地方想...

如果你在你的項目中使用JavaScript,你也可以給一個ID,你的錨(如<a href="link1.com?menu=1" id="link1">Link1</a>),獲得第m enu的值與$ _GET類似,然後使用javascript將該類添加到所需的鏈接。

我給你這個答案,因爲從你寫什麼,我猜你沒有使用任何PHP框架,但您的編碼應用程序中的老辦法...有很多漂亮的PHP框架,在這裏,將有預先製作此...解決方案可能是開頭難,但它是值得的......

祝你好運!