2015-07-21 82 views
0

我已经在PHP中完成了简单的动态导航,例如从数组a中拉出HOME,ABOUT,FAQs和CONTACT,然后显示它。现在我只需要知道什么以及如何编码,如果常见问题解答有4个更多选项来将鼠标悬停在其上之后,我需要一些关于php编码的帮助,而不是在CSS中。 目前I'hv这种情况下在PHP动态嵌套导航中需要一些帮助

<?php 
$pages = array(
    'index.php' => 'Home', 
    'cupping.php' => 'Cupping', 
    'success.php' => 'Success Stories', 
    'healing.php' => 'Healing', 
    'eating-right.php' => 'Eeating Right', 
    'blog.php' => 'Blog', 
    'faq.php' => 'FAQs', 
    'contact.php' => 'Contact Us', 
) ; 


<ul class="nav navbar-nav"> 
    <?php foreach ($pages as $filename => $pageTitle) { 
     if ($filename == $currentPage) { ?> 
     <li class="current"><?php echo $pageTitle ; ?></li> 
     <?php } else { ?> 
     <li><a href="<?php echo $filename ; ?>"><?php echo $pageTitle ; ?></a></li> 
      <?php 
     } //if 
     } //foreach 
    ?> 
</ul> 

现在我怎么可以打印有也有一些嵌套的导航愈合打完PHP编码这个样子的

<ul> 
<li><ahref="index.php">Home</a></li>          
<li><a href="cupping.php">Cupping</a></li>        
<li><a href="success-stories.php">Success Stories</a></li>          
<li><a href="healing.php">Healing Through</a></li>          
    <ul class="submenu"> 
    <li><a href="herbs.php">Herbs</a></li>       
    <li><a href="nature.php">Nature</a></li>            
    <li><a href="behaviour.php">Behaviour</a></li>       
    </ul> 
<li><a href="blog.php">Blog</a></li>          
<li><a href="faqs.php">FAQs</a></li>          
<li><a href="contact.php">Contact Us</a></li>          
</ul> 

的HTML我是新来的PHP,并希望一些帮助。谢谢:)

回答

3
<?php 
$pages = array(
    'index.php' => 'Home', 
    'cupping.php' => 'Cupping', 
    'success.php' => 'Success Stories', 
    'healing.php' => 'Healing', 
    'eating-right.php' => 'Eeating Right', 
    'blog.php' => 'Blog', 
    'faq.php' => array('FAQs'=>array('submenu1.php'=>'submenu1','submenu2.php'=>'submenu2')) , 
    'contact.php' => 'Contact Us', 
) ; 


?> 

    <ul class="nav navbar-nav"> 
    <?php foreach ($pages as $filename => $pageTitle) { 
     if ($filename == $currentPage) { 
      if(is_array($pageTitle)){ 
       foreach ($pageTitle as $menu => $value) { 
       echo '<li class="current">'.$menu.'</li>'; 
       } 
      }else{ 

       echo '<li class="current">'.$pageTitle.'</li>' ; 
      } 
     ?> 


     <?php } else { 
      if(is_array($pageTitle)){ 

       foreach ($pageTitle as $menu => $value) { 

       echo '<li><a href="#">'.$menu.'</a></li>'; 
       echo '<ul>'; 
        foreach ($value as $key => $submenu) { 
         echo '<li><a href="'.$key.'">'.$submenu.'</a></li>'; 

        } 
       echo '</ul>'; 
       } 
      }else{ 
      ?> 
      <li><a href="<?php echo $filename ; ?>"><?php echo $pageTitle ; ?></a></li> 
      <?php 
      } 
     } //if 
     } //foreach 
    ?> 
</ul> 

试试这个代码,这将有助于你对任何主菜单中创建多个子菜单。

+0

好,但是如果我把'$ currentPage ='faq.php';'?会发生什么?它会得到**数组到字符串的转换** –

+0

我已经更新了代码尝试重新执行,修正了错误。 –

+0

好,+ 1为你更新:) –

1

尝试将值切换到索引。请看下面。

<?php 
$pages = array(
    'home' => array('url' => 'index.php', 'caption' => 'Home'), 
    'faq' => array('url' => 'faq.php', 'caption' => 'FAQs', 'submenu' => 
     array(
      'submenu1' => array('url' => 'Submenu1.php', 'caption' => 'Submenu1'), 
      'submenu2' => array('url' => 'Submenu2.php', 'caption' => 'Submenu2') 
     ) 
    ), 
    'contact' => array('url' => 'contact.php', 'caption' => 'Contact Us'), 
); 
?> 
<ul class="nav navbar-nav"> 
    <?php foreach ($pages as $parent_menu) { ?> 
     <li class="<?= ($parent_menu['url'] == $currentPage ? 'current' : '') ?>"> 
      <a href="<?= $parent_menu['url'] ?>"><?= $parent_menu['caption'] ?></a> 
      <?php if (isset($parent_menu['submenu'])) { ?> 
       <ul class=""> 
        <?php foreach ($parent_menu['submenu'] as $child) { ?> 
         <li><a href="<?= $child['url'] ?>"><?= $child['caption'] ?></a></li> 
        <?php } ?> 
       </ul> 
      <?php } ?> 
     </li> 
    <?php } ?> 
</ul> 
+0

好,但为什么你不考虑'$ currentPage ='faq.php';'尊重'class =“current”'? –