2011-10-13 14 views
0

が含まれています。ウェブサイトを開発していて、私のナビゲーションメニュー(ここでの主題)を含むヘッダにforeachインクルードをしようとしています。ナビゲーションメニューのheader.phpのファイル内PHP foreachメニューには

私のコードはここにある:

<!-- 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 --> 

あなたはコードで条件if($item == $title)であることに気づくことがあります。私のindex.phpには、このif文で取られて使用されていた、$title="Home";が含まれています。私のindex.phpページで

私は、次のコードでこれを含まれています:

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

誰も私が間違っているつもりですどこを教えてもらえますか?

答えて

3

答えはありませんが、コメントは書式設定されたコードには適していません。あなたは後でメンテナンスの問題につながることができなかったとして、あなたがのコピーを1つだけメニュー構造で何かを変更し、変更することを決定した場合、

$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の設定を変更することによって:

あなたはあなたのスクリプトの先頭に次の2行を追加することによってこれを行うことができます。