2017-10-29 2 views
-2

는 모든 탐색 링크에 대한 속성이 "활성"으로 채워하는 이유모든 내비게이션 링크에서 클래스가 "활성"인 이유는 무엇입니까? 여기

<nav class="navbar navbar-inverse navbar-fixed-top"> 
    <div class="container-fluid"> 
    <div class="navbar-header"> 
     <a class="navbar-brand" href="">Pointless?</a> 
    </div> 
    <ul class="nav navbar-nav"> 
<?php 
$active = ""; 
$pages = array("/index.php","/music/index.php","/pong/index.php"); 
if ($_SERVER["SCRIPT_NAME"] == $pages[0]) { 
    $active .= "active"; 
} 
else if ($_SERVER["SCRIPT_NAME"] == $pages[1]) { 
    $active .= "active"; 
} 
else { 
    $active = ""; 
} 
echo "  <li class=\"$active\"><a href=\"/\">Home</a></li>\n  <li class=\"$active\"><a href=\"/music\">Music</a></li>\n  <li class=\"$active\"><a href=\"/pong\">Pong</a></li>"; 
?> 
    </ul> 
    </div> 
</nav> 

아무도 알고 있나요 내 navbar.php 파일입니다? if 문에서 변수에 추가했기 때문에.

또한 코드에 대해 변경해야 할 것이 있습니까/불필요한가요?

+0

모든 활성 변수가 동일한 활성 변수를 사용하고 있기 때문에 이러한 현상이 발생합니다 –

답변

2

li을 생성하기 전에 $class의 값을 활성으로 설정하고 있습니다. 그래서 그 일이 그렇게 일어나고 있습니다.

이렇게 코드를 업데이트 할 수 있습니다.

<nav class="navbar navbar-inverse navbar-fixed-top"> 
    <div class="container-fluid"> 
    <div class="navbar-header"> 
     <a class="navbar-brand" href="">Pointless?</a> 
    </div> 
    <ul class="nav navbar-nav"> 
<?php $url = $_SERVER['REQUEST_URI']; ?> 

<li class="<?php echo $url === '/test.php' ? 'active' : '' ?>"><a href="/">Home</a></li> 
<li class="<?php echo $url === '/music/index.php' ? 'active' : '' ?>"><a href="music">Music</a></li> 
<li class="<?php echo $url === '/pong/index.php' ? 'active' : '' ?>"><a href="pong">Pong</a></li> 
    </ul> 
    </div> 
</nav> 
관련 문제