2011-10-13 3 views
0

웹 사이트를 만드는 중입니다. 내 탐색 메뉴 (여기에서 주요 항목)가 포함 된 내 머리글에 foreach를 포함하려고합니다.PHP foreach 메뉴에는

탐색 메뉴의 header.php 파일을 내 코드는 여기에 있습니다 : 당신은 그 코드에 조건 if($item == $title)입니다 알 수 있습니다

<!-- topmenu --> 
<div class="menu-header"> 
    <div class="container"> 
      <ul class="top menu"> 
      <?php 
      $nav = array("Home","About","Portfolio","Products","Services","Contact"); 
      foreach($nav as $item){ 
      if($item == $title){ 
       echo "<li class='current-menu-ancestor parent'><a href='$item.php'>$item</a></li>"; 
       }else{ 
       echo "<li><a href='$item.php'>$item</a></li>"; } 
       } 
       ?> 

      </ul> 
     </div> 
</div>   
<!--/ topmenu --> 

. index.php에 $title="Home";을 포함 시켰고이 if 문에서 사용하려고했습니다. 내가 잘못 가고 어디

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

사람이 말해 줄 수 : 내 index.php를 페이지에서

나는 다음 코드로이 포함되어 있나요?

답변

3

답변이 없지만 형식이 지정된 코드에는 주석이 적합하지 않습니다. 나중에 유지 보수 문제가 발생할 수 있습니다 않았다대로의 복사본 하나를 메뉴 구조에서 뭔가를 변경하고 변경하기로 결정한 경우,

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

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

복제 HTML : 당신은 당신의 HTML의 일부를 해제 복제 할 수 있습니다 메뉴 html.

+0

+1 : 좋은 제안입니다. – hakre

2

header.php를 포함하기 전에 $ title을 설정해야합니다!

<?php 
    $title = "Home"; 

    include("header.php"); 
?> 
3

header.php는 미래를 볼 수 없습니다.

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

그래서 당신은 기본적으로 그냥 라인을 전환 : 당신이 변수가 포함에서 설정하려는 경우, 당신은 전에 설정해야합니다.

또한 코드를 입력하는 동안 발생할 수있는 일반적인 실수에 대한 경고를 제공하기 때문에 개발할 때 가장 높은 수준으로보고하는 것이 좋습니다.

error_reporting(~0); 
ini_set("display_errors", "1″); 

를하거나 PHP 구성을 변경하여 :

당신은 당신의 스크립트의 맨 위에 다음 두 줄을 추가하여이 작업을 수행 할 수 있습니다.