2012-01-24 5 views
-3
$AllPages = array('dashborad.php','myprojects.php','team.php','time.php'); 
     $key = array_search($pagename,$AllPages); 

     /*if(array_search($pagename,$AllPages)){ 
      $selectedclass = "new_list_item1_curent"; 
     } else { 
      $selectedclass = ""; 
     }*/ 

     $tabbing = "<ul class=\"new_list_item1\"> 
        <li><a href=\"projects_dashboard.php\" class=\"".$selectedclass."\"><span>Dashboard</span></a></li> 
        <li><a href=\"myprojects.php\" class=\"".$selectedclass."\">Projects</a></li> 
        <li><a href=\"team.php\" class=\"".$selectedclass."\"><span>Team</span></a></li> 
        <li><a href=\"time.php\" class=\"".$selectedclass."\"><span>Time</span></a></li> 
       </ul>"; 
     return $tabbing; 
+3

質問?? 。 。 。 – Mob

+0

@Mob - OPが現在のページを持っていて、そのページのナビゲーションアイテムのCSSを「アクティブ」に設定したいと思うようです。 – stealthyninja

+0

あなたは何をしようとしているのか、質問はしていません。 「ページを選択する方法」は、あなたがしようとしていることの十分な説明ではありません。 –

答えて

1

質問が明らかに欠けているにもかかわらず、以下を試してみてください。

私は$pagenameはどこから来て、現在のページのファイル名

$allPages = array(
    'Dashboard' => 'dashborad.php', 
    'Projects' => 'myprojects.php', 
    'Team'  => 'team.php', 
    'Time'  => 'time.php' 
); 
ob_start(); 
?> 

<ul class="new_list_item1"> 
    <?php foreach ($allPages as $title => $page) : 
    $selected = $pagename == $page ? '" class="new_list_item1_curent' : ''; 
    ?> 
    <li> 
     <a href="<?php echo htmlspecialchars($page), $selected ?>"> 
      <span><?php echo htmlspecialchars($title) ?></span> 
     </a> 
    </li> 
    <?php endforeach ?> 
</ul> 

<?php 
return ob_get_clean(); 
2
function getTabbing($pagename, $AllPages) { 
    $tabbing = '<ul class="new_list_item1">'; 
    foreach ($AllPages as $page => $page_show_name) { 
     $tabbing .= sprintf('<li><a href="%s" %s><span>%s<span></a></li>', $page, $page === $pagename ? 'class="new_list_item1_curent"' : '', $page_show_name); 
    } 
    $tabbing .= '</ul>'; 
    return $tabbing; 
} 

$AllPages = array(
    'dashborad.php' => 'Dashboard', 
    'myprojects.php' => 'Projects', 
    'team.php' = 'Team', 
    'time.php' => 'Time' 
); 

$pagename = 'dashborad.php' 

$tabbing = getTabbing($pagename, $AllPages); 
+0

'sprintf()'に+1しましたが、 '' sを忘れました。 – Phil

+0

@Philありがとうございました、 ''が追加されました:) – xdazz

2

いくつかのユーティリティコードが順番になっていると仮定しています。しかし、怠惰な解決策は、(以下エスケープ)の代わりにヒアドキュメントの文字列を使用して、簡単にプロービングのための配列selectedclass $を作ることになります

$selectedclass = array(
     basename($_SERVER["SCRIPT_NAME"], "php") => "new_list_item1_curent" 
    ); 

    $tabbing = @<<<HTML 
     <ul class="new_list_item1"> 
      <li><a href="projects_dashboard.php" class="$selectedclass[dashboard]"><span>Dashboard</span></a></li> 
      <li><a href="myprojects.php" class="$selectedclass[myprojects]">Projects</a></li> 
      <li><a href="team.php" class=$selectedclass[team]><span>Team</span></a></li> 
      <li><a href="time.php" class=$selectedclass[time]><span>Time</span></a></li> 
     </ul> 
HTML; 
    return $tabbing; 

これは、アレイ用のシンプルで、二重引用符PHP3の構文に依存しています。 もちろん、冗長引用符をもう一度追加することはできます。私は個人的にはこれをしません。しかし、可能なページ名の小さなリストの場合、このハードコーディングは受け入れられるようです。

関連する問題