2012-01-24 3 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

+1'sprintf()'에 대해 ''을 잊어 버렸습니다. – Phil

+0

@ 감사 인사,' '추가됨 :) – 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; 

이 배열에 대한 간단한에서-따옴표 통해서 PHP 구문을 사용합니다. 물론 중복 된 따옴표를 다시 추가 할 수 있습니다. 그리고 나는 이것을 개인적으로하지 않을 것입니다. 그러나 가능한 페이지 이름의 작은 목록에 대해이 하드 코딩은 허용되는 것으로 보입니다.

관련 문제