优化PHP菜单选择器

时间:2011-04-14 07:53:23

标签: 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 个答案:

答案 0 :(得分: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
     }
}
?>

如果稍后添加或更新任何网址或任何菜单,您不必再次查找整个逻辑,只需将这些更新添加到$menu数组中。

答案 1 :(得分:0)

这可能是一种更加慷慨的方式,但这是一个开始:

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