2010-04-09 3 views
0

PHP include() 문을 사용하여 추가 한 모든 내 페이지의 맨 위에 동일한 수평 메뉴가 있습니다. 내 스타일 시트에서 사용자가 특정 페이지에 있으면 해당 페이지에 해당하는 메뉴 항목의 색상이 달라지는 클래스가 필요합니다. 그럼, 다소 :PHP include()의 요소에 대한 클래스 설정

# 메뉴 { background-color : blue; }

# menu .active { background-color : green; }

그러나 메뉴가 PHP 포함에서 제공되므로 항상 동일합니다. 각 페이지의 해당 메뉴 항목에 class = "active"를 추가하는 PHP 또는 JavaScript를 작성하려면 어떻게합니까?

답변

3

include() 파일을 사용하면 포함 된 파일에 포함 된 모든 범위 내 변수에 액세스 할 수 있습니다. 어떤 메뉴 항목이 활성화되어야하는지 말할 변수를 쉽게 설정할 수 있습니다. 기본 예제는이 같은 수 있습니다 :이 스타일로

firstpage.php

<?php 

$chosenMenu = 'page1'; 
include('menu.php'); 

menu.php

<div id="menu"> 
<?php 
$menuItems = array(
    'page1'=>'firstpage.php', 
    'page2'=>'secondpage.php', 
    'page3'=>'lolcats.php' 
); 
foreach($menuItems as $key => $value) { 
    echo '<a href="'.$value.'"'; 
    if (isset($chosenMenu) && $chosenMenu == $key) echo ' class="active"'; 
    echo '>'; 
} 
?> 
</div> 

, 당신은 단순히 포함하기 전에 변수 $chosenMenu을 설정할 수 있습니다 메뉴 파일을 열고 거기에서 제어 할 수 있습니다.

관련 문제