如何解决优化PHP菜单选择器
| 我做了我的作业,并且代码可以工作并且可以完成我想要的事情。 目的是: 我有一个包含6个选项的菜单。当我单击一个选项时,该选项将保持点亮状态,然后其余选项将被停用,并且单击该选项时,每个选项都必须依次进行。我已经来到下面的代码来控制我的应用程序顶部菜单,正如我所说的那样,它可以正常工作并完成我想要的事情。但是我关注的是以下几点。由于我根本不了解php编程和编程知识,因此仍然在学习,所以我想知道这是执行此操作的正确方法,还是最糟糕的方法?还可以优化此代码吗? 我尝试使用switch,但失败了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>
解决方法
我想这样
<?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
数组中即可。
,可能是更简洁的方法,但这是一个开始:
<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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。