2012-12-13 3 views
1

이 코드가 내 탐색 항목을 선택된 상태로 유지하지 않는 이유는 무엇입니까?PHP에서 선택된 아이템 항목

<?php 
function navItemSelected($pg) 
{ 
    global $pgname; 
    if ($pg == $pgname) 
    { 
    echo "active"; 
    } 
} 
?> 

<!-- ===== NAVIGATION ===== --> 
<div id="navigation"> 
    <div class="wrapper"> 
     <div id="menu"> 
      <ul> 
       <li class="home"><a href="index.php" class="<?php echo navItemSelected('home'); ?>">home</a></li> 
      </ul> 
     </div> 
     </div> 
+1

$ pgname에 예상 한 값이 없거나 아무 것도 반환하지 않고 대신 에코 자체를 실행하는 오류가 발생합니다. 함수를 호출 할 때 메아리를 제거해보십시오. 또한 $ pgname을 텍스트로 인쇄하여 원하는 값을 갖도록 할 수 있습니다. – span

답변

2
function navItemSelected($pg){ 
    global $pgname; 
    if ($pg == $pgname){ 
    //echo "active"; Don't echo here 
    return "active"; 
    } 
    } 
+0

좋은 대답이지만, @ user1900715가 자신의 기능을 잘못 호출 한 것을 알지 못하는 사람들을 위해 좀 더 명확한 설명을 추가 할 것을 제안합니다. – lifo

+0

@lifo, 정확히 수행해야 할 것을 보여줌으로써 #span의 주석을 정당화했습니다. 모든 프로그래밍 언어에서 함수를 호출 할 때 호출에서 하나 이상의 데이터 값을 얻을 수 있도록 작성해야합니다. program.the 함수 # user1900715 어떤 값을 반환하지 않았습니다 썼다. 그의 기능 수정 우려만큼 # span 대답은 적합합니다. – Christopher

+0

당신은 내 의견을 오해했습니다. 나는 당신의 해결책을 완전히 이해했습니다. 이 사이트는 Q/A 사이트이며, 솔루션에 대한 작업 방식을 "이해하지 못하는"사람들에게 좀 더 자세한 설명이 도움이 될 것이라고 생각했습니다. 그러나 어떤 경우에도 아무런 해를 끼치 지 않고 단지 제안 일뿐입니다. +1 – lifo

0

어느 $pgname가 예상 값이 없거나 당신은 아무것도 반환하지 않는 함수를 에코하려고 몇 가지 오류가 대신 에코 자체를 실행합니다. 함수를 호출 할 때 메아리를 제거해보십시오. $pgname을 텍스트로 인쇄하여 예상 한 값이 맞는지 확인할 수도 있습니다.

관련 문제