#php
#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>
Ответ №1:
Я хотел бы сделать таким образом
<?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
массив.
Комментарии:
1. Sweeeeet. Многим этот способ больше нравится, чем мой. Нужно подумать еще ! 🙂
2. Вау, быстрый и потрясающий ответ! Я реализую это таким образом, о боже, так многому нужно научиться ^_^. спасибо !!… упс для голосования требуется репутация 15 :/ , извините…
Ответ №2:
Возможно, это более эффективный способ сделать это, но вот начало:
<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>