2011-04-14 30 views
2

我做了我的功課,代碼工作,做我想做的事。優化PHP菜單選擇器

其用途如下:

我有一個菜單有6個選項。當我點擊一個選項時,該選項保持點亮狀態,其餘選項將被停用,並且必須在點擊時連續發生一個選項和每個選項。我來到下面的代碼來控制我的應用程序的頂級菜單,正如我所說的那樣,並且做到了我想要的完美無瑕。但我的關注點如下。由於我不熟悉php編程和編程,仍然在學習,所以我想知道這是否是正確的方式,或者這是最糟糕的?此代碼是否可以優化? 我試過使用開關,但失敗慘痛T_T。

由於事先;)

歡呼聲JotaDG

---------------代碼--------------- ------

<ul class="floating left"> 
<?php 
       if ($Section=='1'){?> 
        <li><a class="on" href="<?php echo $StartUpUrl;?>">Start</a></li> 
        <li><a href="<?php echo $urlListFAQ;?>">FAQ</a></li> 
        <li><a href="<?php echo $urlHelp;?>">Help</a></li> 
        <li><a href="<?php echo $urlDocs;?>">Docs</a></li> 
        <li><a href="<?php echo $urlNews;?>">News</a></li> 
        <li><a href="<?php echo $urlGuide;?>">Guide</a></li> 
       <?php } 
        elseif ($Section== '2'){?> 
          <li><a href="<?php echo $StartUpUrl;?>">Start</a></li> 
          <li><a class="on" href="<?php echo $urlListFAQ;?>">FAQ</a></li> 
          <li><a href="<?php echo $urlHelp;?>">Help</a></li> 
          <li><a href="<?php echo $urlDocs;?>">Docs</a></li> 
          <li><a href="<?php echo $urlNews;?>">News</a></li> 
          <li><a href="<?php echo $urlGuide;?>">Guide</a></li> 
       <?php } 
        elseif ($Section== '3'){?> 
          <li><a href="<?php echo $StartUpUrl;?>">Start</a></li> 
          <li><a href="<?php echo $urlListFAQ;?>">FAQ</a></li> 
          <li><a class="on" href="<?php echo $urlHelp;?>">Help</a></li> 
          <li><a href="<?php echo $urlDocs;?>">Docs</a></li> 
          <li><a href="<?php echo $urlNews;?>">News</a></li> 
          <li><a href="<?php echo $urlGuide;?>">Guide</a></li> 
        <?php } 
         elseif ($Section== '4'){?> 
           <li><a href="<?php echo $StartUpUrl;?>">Start</a></li> 
           <li><a href="<?php echo $urlListFAQ;?>">FAQ</a></li> 
           <li><a href="<?php echo $urlHelp;?>">Help</a></li> 
           <li><a class="on" href="<?php echo $urlDocs;?>">Docs</a></li> 
           <li><a href="<?php echo $urlNews;?>">News</a></li> 
           <li><a href="<?php echo $urlGuide;?>">Guide</a></li> 
        <?php } 
         elseif ($Section== '5'){?>    
            <li><a href="<?php echo $StartUpUrl;?>">Start</a></li> 
            <li><a href="<?php echo $urlListFAQ;?>">FAQ</a></li> 
            <li><a href="<?php echo $urlHelp;?>">Help</a></li> 
            <li><a href="<?php echo $urlDocs;?>">Docs</a></li> 
            <li><a class="on" href="<?php echo $urlNews;?>">News</a></li> 
            <li><a href="<?php echo $urlGuide;?>">Guide</a></li> 
         <?php } 
          elseif ($Section== '6'){?> 
             <li><a href="<?php echo $StartUpUrl;?>">Start</a></li> 
             <li><a href="<?php echo $urlListFAQ;?>">FAQ</a></li> 
             <li><a href="<?php echo $urlHelp;?>">Help</a></li> 
             <li><a href="<?php echo $urlDocs;?>">Docs</a></li> 
             <li><a href="<?php echo $urlNews;?>">News</a></li> 
             <li><a class="on" href="<?php echo $urlGuide;?>">Guide</a></li> 
      <?php }?> 
     </ul> 

回答

2

我想這樣做

<?php 
//define an array of itmes I just taken three define all items 
$menu=array(
      1=> array('Start'=>'http://someurl'), 
      2=> array('FAQ'=>'http://faqurl'), 
      3=>array('Help'=>'http://helpurl') 
      ); 

foreach($menu as $key => $menuArray) 
{ 
    foreach ($menuArray as $title => $url) 
    { 
    ?> 
     <li><a <?php if ($Section==$key) { echo 'class="on"';}?> href="<?php echo $url;?>"><?php echo $title; ?></a></li> 
    <?php 
    } 
} 
?> 

如果以後任何URL或任何菜單添加或更新,你不必再次查找整個邏輯,只需去這些更新到$menu數組。

+0

Sweeeeet。更喜歡這種方式,我的。更多的想法給予! :-) – simnom 2011-04-14 08:28:06

+0

哇,快速和真棒的答案!我正在以這種方式實施,哦,我非常需要學習^ _ ^。謝謝!! ...哎呀投票需要15聲望:/,抱歉... – JDG 2011-04-14 08:30:58

0

可能是一個更succicient辦法做到這一點,但這裏是一個開始:

<ul class="floating left"> 
    <li><a <?php echo ($section == 1) ? 'class="on"' : '';?> href="<?php echo $StartUpUrl;?>">Start</a></li> 
    <li><a <?php echo ($section == 2) ? 'class="on"' : '';? href="<?php echo $urlListFAQ;?>">FAQ</a></li> 
    <li><a <?php echo ($section == 3) ? 'class="on"' : '';?> href="<?php echo $urlHelp;?>">Help</a></li> 
    <li><a <?php echo ($section == 4) ? 'class="on"' : '';?> href="<?php echo $urlDocs;?>">Docs</a></li> 
    <li><a <?php echo ($section == 5) ? 'class="on"' : '';?> href="<?php echo $urlNews;?>">News</a></li> 
    <li><a <?php echo ($section == 6) ? 'class="on"' : '';?> href="<?php echo $urlGuide;?>">Guide</a></li>   
</ul> 
+0

謝謝你:) – JDG 2011-04-14 08:33:58