<?php 
            $menuRoot = $db->get_results("select * from ".TB_PREFIX."menu where deep = 0 and isHidden=0 and dtLanguage='".$_SESSION[TB_PREFIX.'dtLanguage']."' order by ordering");
            $i=0; 
            foreach ($menuRoot as $o) 
            {  
              $i++; 
              $submenuRoot=$db->get_results("select * from ".TB_PREFIX."menu where parentid=".$o->id." and isHidden=0 order by ordering asc"); 
  
  if($params['id']==$o->id)
  {
                  if($i==count($menuRoot)) 
                  echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/" id="menuEnd" class="hereEnd">'.$o->title.' </a>'; 
                  else 
                  echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/" class="here">'.$o->title.' </a>'; 
              } 
  else 
              { 
                  if($i==count($menuRoot)) 
                  echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/" id="menuEnd">'.$o->title.' </a>'; 
                  else 
                  echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/">'.$o->title.' </a>'; 
              } 
  
  
              if($submenuRoot=='') 
              { 
                echo ' </li>'; 
              } 
              else 
              { 
                echo ' <ul>'; 
                foreach($submenuRoot as $osub) 
                echo ' <li> <a href="'.get_root_path().'/html/'.$osub->menuName.'/">'.$osub->title.' </a> </li>'; 
                echo ' </ul>'; 
                echo ' </li>'; 
              } 
            } 
            ?>这是一段输出菜单的代码目前已实现的是:如果当前页为某个父菜单时,该父菜单的样式为class="here"我还想实现的是:如果当前页为某个子菜单时,该子菜单的父菜单的样式也为class="here"请问应该怎么修改?

解决方案 »

  1.   

      echo ' <ul>'; 
                    foreach($submenuRoot as $osub) 
                    echo ' <li> <a href="'.get_root_path().'/html/'.$osub->menuName.'/">'.$osub->title.' </a> </li>'; 
                    echo ' </ul>'; 
                    echo ' </li>'; 
    应该是在这一块处理,如果 父结点 搞好了, 子结点 也应该差不多吧 
      

  2.   

     $menuRoot = $db->get_results("select * from ".TB_PREFIX."menu where deep = 0 and isHidden=0 and dtLanguage='".$_SESSION[TB_PREFIX.'dtLanguage']."' order by ordering");
                $i=0; 
                foreach ($menuRoot as $o) 
                {  
                  $i++; 
                  $submenuRoot=$db->get_results("select * from ".TB_PREFIX."menu where parentid=".$o->id." and isHidden=0 order by ordering asc"); 
                  
                  if($params['id']==$o->id)
                  {
                      if($i==count($menuRoot)) 
                      echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/" id="menuEnd" class="hereEnd">'.$o->title.' </a>'; 
                      else 
                      echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/" class="here">'.$o->title.' </a>'; 
                  } 
                  else 
                  { 
                      if($i==count($menuRoot)) 
                      echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/" id="menuEnd">'.$o->title.' </a>'; 
                      else 
                      echo ' <li> <a href="'.get_root_path().'/html/'.$o->menuName.'/">'.$o->title.' </a>'; 
                  } 
                  
                  
                  if($submenuRoot=='') 
                  { 
                    echo ' </li>'; 
                  } 
                  else 
                  { 
                    echo ' <ul>'; 
                    foreach($submenuRoot as $osub) 
                    echo ' <li> <a href="'.get_root_path().'/html/'.$osub->menuName.'/">'.$osub->title.' </a> </li>'; 
                    echo ' </ul>'; 
                    echo ' </li>'; 
                  } 
                } 
    在你的代码里好像没看出来实现当前页面的父菜单的样式为class="here" 好像是查询结果最后个一 的样式为 class="here" (); 按LZ的做法,就可以这样了...
    $i = 0;
    $con = count( $submenuRoot );
    foreach($submenuRoot as $osub) 
    {
        $i++;
        if( $i == $con )
        {
            $str = "class='here'";
        }
        else
        {
            $str = '';
        }
        echo ' <li> <a href="'.get_root_path().'/html/'.$osub->menuName.'/" $str >'.$osub->title.' </a> </li>';
    }