无法正确显示斜杠

时间:2014-04-10 08:33:05

标签: php drop-down-menu

我不知道自己哪里出错了,但我试图让斜线只出现在菜单的第一个下拉级别。我在php中这样做。

这是我的代码

function appendMainNav($subid){

    global $_PAGES_TABLE, $_HTTP_ADDRESS;
    $subWrapper='';
    $subClass='';
    $mainClass='mega-nav-wrapper overlay-bg';
    if($this->hasParentMenu($subid) > 0){
        $subWrapper = 'sub-nav-main-wrapper'; 
        $subClass='sub-nav-wrapper';
        $mainClass='';
    }
    $p=1;
    $str = "";
    $str.= '<div class="'.$subWrapper.'">';
    $str.=' <ul class="'.$mainClass.''.$subClass.'">';
    $query = mysql_query("SELECT *  FROM $_PAGES_TABLE P WHERE P.parent='".$subid."' AND P.show='1' AND P.active='1' ORDER BY num");
    while( $result = mysql_fetch_object($query) ){
        $page = new Page($result->id);
        $page->setFromDatabase();
        $lastClass='';

        if(($page->linkto != '0' && $page->linkto != 0 && $page->linkto != '') || $page->linkto == '#'){
            $linkto = $page->linkto;    
        }else{
            $linkto = $page->id;
        }

        $appendArrow='';
        $arrowSelect = "";
        $slash ='       ';

        if($this->hasChildrenMenu($page->id) > 0){

            $slash = '      /';
        }

        $str .='<li class="subnav_item'.$lastClass.'"><a class="'.$appendArrow.'" href="'.getSEOLink($linkto).'">'.$page->{'title'.$langVar}.''.$slash.'</a>';
        //$str.='<li><span>/</span></li>';

        if($this->hasChildrenMenu($page->id) > 0){

            $str.=  $this->appendMainNav($page->id);
        }

        $str.='</li>';
        $p++;

    }

    $str.='     </ul>';
    $str.='</div>';
    return $str;

目前它只出现在子菜单项上,也有下拉下拉菜单。第二次下降不能有任何东西。

我的菜单看起来像这样

menu 1   menu 2 / menu 3

     submenu 1 
     submenu 2 
     submenu 3

这就是我希望它看起来的方式

menu 1 /  menu 2 / menu 3 /

     submenu 1 
     submenu 2 
     submenu 3

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是在函数中添加一个标志并更改条件:

function appendMainNav($subid, $noSlash = false){

    ...

        if(!$noSlash){

            $slash = '      /';
        }
        ...

        if($this->hasChildrenMenu($page->id) > 0){

            $str.=  $this->appendMainNav($page->id, true);
        }
     ...