2011-10-14 4 views
0

PHP 헤더를 입력하려면 PHP 포함을 사용하고 있습니다. 물론 내 탐색 메뉴가 포함되어 있습니다.PHP 헤더 포함 내비게이션 메뉴 문제

탐색 메뉴 부분에 대한 'header.php'코드는 다음과 같습니다 :

$nav = array("Home","About","Portfolio","Products","Services","Contact"); 

foreach($nav as $item) 
{ 
    $class = ''; 
    $href = $item; 

    if($item == "Home") 
    { 
     $class = 'class="current-menu-ancestor parent"'; 
     $href = 'index'; 
    }elseif($item == $title){ 
     $class = 'class="current-menu-ancestor parent"'; 
    } 

    echo "<li $class><a href='$href.php'>$item</a></li>"; 
} 

죄송 경우는 조금 지저분한. 그것은 관련 페이지에서 $title 도착, 한 페이지에 표시되는 예제 코드는 다음과 같습니다 이제

$title = "Home"; 
    include("header.php"); 

모든 것이 잘 작동하는 것 같다 오른쪽 탐색 메뉴 항목이있다 등 적절한 장소에 모두 연결 고리 , 'home'은 실제로 'header.php'에 코딩 된 'home.php'가 아닌 'index.php'입니다.

'집'페이지에서 사용자가 해당 페이지에 있음을 나타 내기 위해 '집'페이지 탐색 메뉴 항목이 강조 표시되어 있지만 다른 페이지로 이동하면 예를 들어 'about'페이지에서 'about'nav 메뉴 항목과 'home'nav 메뉴 항목을 강조 표시합니다.

어디로 잘못 가고 있습니까?

+1

항상 $ item == "Home"조건을 루프에 한 번 전달하므로 클래스가 항상 설정됩니다. 따라서 귀하는 귀하의 조건을 변경/확장해야합니다. –

+0

출력 HTML을 게시 할 수 있습니까? –

답변

3

귀하의 foreach 루프 것이다 항상 장소 그게 강조하게 만드는거야 가정 "현재 메뉴 조상"로 "홈"에 대한 $ 클래스 .. 아래 같은 것을 수행 할 수 있습니다 :

foreach($nav as $item) 
{ 
    $class = ''; 
    $href = $item; 
    if($item == "Home") 
    { 
     // $class = 'class="current-menu-ancestor parent"'; Get rid of this 
     $href = 'index'; 
    } 
    if($item == $title) // Change this to if instead of elseif 
    { 
     $class = 'class="current-menu-ancestor parent"'; 
    } 
    echo "<li $class><a href='$href.php'>$item</a></li>"; 
} 
+0

건배, 큰 도움 – RSM

1

if($title == "Home") 

보다는

if($item == "Home") 

당신은 너무 가까이 있었다 사용해보십시오!

+0

이렇게하면 '집'이외의 탐색 항목을 올바르게 강조 표시하지 않습니다. foreach 내에서 발생하기 때문에 그것들 중 _all_에'current-menu-ancestor parent' 클래스를 줄 것입니다. –

+0

전에 시도 했었습니다. 위와 같이 모두 강조했습니다. 건배. 다른 생각이 들지 않으면 알려주세요. 왜 내가 elseif를 시도했는지 – RSM

+0

죄송합니다, 지금 분류되었습니다! – Matthew

1
$nav = array("Home","About","Portfolio","Products","Services","Contact"); 
foreach($nav as $item){ 
    $class = ''; 
    $href = $item; 
    if ($item == "Home") { 
     $href = 'index'; 
    } 
    if ($item == $title) { 
     $class = 'class="current-menu-ancestor parent"'; 
    } 
    echo "<li $class><a href='$href.php'>$item</a></li>"; 
} 

올바른 코드인지 확인하십시오. 그것은 당신의 조건 논리에 약간 혼란이었습니다.