如何从所有顶级列出的项目中删除嵌套导航,但PHP数组中的服务除外?

时间:2017-03-26 00:58:26

标签: php html

我试图删除嵌套列表($ subPages)以显示在所有顶级列表($ pages)下,但服务除外;但是我的代码允许嵌套列表项显示在所有三个顶级列表项下。

任何人都可以帮我删除所有顶级列表项中的嵌套列表项,除了一个吗?

NB。我是PHP的新手,并且只想坚持使用PHP而不需要任何其他语言。我的PHP代码可能有效;如果你发现需要改进的地方,请告诉我。

<nav class="navBar wAuto fRight positAb">
<?php
$pages = array(
'/about/' => 'About',
'/services/' => 'Services',
'/book-a-service/' => 'Book a service'
);
$subPages = array(
'/services/bathroom-installation' => 'Bathroom installation',
'/services/boiler-repair' => 'Boiler repair',
'/services/boiler-service' => 'Boiler service',
'/services/gas-oil' => 'Gas &amp; oil',
'/services/heat-recovery' => 'Heat recovery',
'/services/heating-plumbing' => 'Heating and plumbing',
'/services/rainwater-harvesting' => 'Rainwater harvesting',
'/services/solar-solutions' => 'Solar solutions',
'/services/underfloor-heating' => 'Underfloor heating'
);
$activePage = $_SERVER['REQUEST_URI'];
echo '<ul>';//open nav
foreach( $pages as $url => $anchor){
$activeClass = ($_SERVER['REQUEST_URI'] == $url) ? " active" : "";
echo '<li class="fLeft"><a class="font13'.$activeClass.'" href="'.$url.'"';
if($url == '/services/'){
echo 'id="parent"';
}
if($url == '/book-a-service/')
echo 'id="ctaUHP"';
echo '>'.$anchor.'</a>';
//Open nested nav
if(isset($url) == '/services/'){
echo '<ul class="wAuto positAb">';
foreach ($subPages as $url => $anchor){
echo '<li class="fullWidth"><a class="font10" href="'.$url.'"';//open nested nav
echo '>'.$anchor.'</a></li>';
}
};
echo '</li></ul>'; //close nested nav
}
//Close submenu
echo '</ul>';
//close nav
?>
</nav>

1 个答案:

答案 0 :(得分:0)

在打开嵌套导航的代码中,将if(isset($url) == '/services/')更改为if($url == '/services/'){

说明:您无需验证$url是否已设置,只需在$url == '/services/'时打印嵌套导航,这就是您需要的原因删除函数isset():)

修改

你缺少一些{},我甚至重新安排了你的一些代码,所以现在看起来像这样:)

echo '<ul>'; //open nav

foreach( $pages as $url => $anchor) {
    $activeClass = ($_SERVER['REQUEST_URI'] == $url) ? " active" : "";

    echo '<li class="fLeft"><a class="font13'.$activeClass.'" href="'.$url.'"';

    if($url == '/services/') {
        echo 'id="parent"';
    }

    if($url == '/book-a-service/') {
        echo 'id="ctaUHP"';
    }

    echo '>'.$anchor.'</a>';

    //verify if exists nested nav
    if($url == '/services/') {
        echo '<ul class="wAuto positAb">'; //open nested nav

        foreach ($subPages as $url => $anchor) {
            echo '<li class="fullWidth"><a class="font10" href="'.$url.'">'.$anchor.'</a></li>';
        }

        echo '</ul>'; //close nested nav
     }

     echo '</li>';
}

echo '</ul>'; //close nav