2014-03-31 40 views
0

我正在構建子菜單菜單。JQuery和PHP - 我無法在我的菜單上顯示多個子菜單

我使用jQuery顯示/隱藏子菜單和我使用PHP來接收表值...

爲了把它概括地說,jQuery是那裏的視覺效果,並採用php從我的數據庫中顯示正確的菜單/子菜單值。

但我在這裏遇到一些麻煩。當我點擊菜單鏈接時,只有一個子菜單(第一個)顯示。

我該怎麼做才能顯示所有的子菜單?

我禁用了jQuery很多次,它顯示了禁用jQuery腳本時的所有子菜單。

菜單查看

<?php 
    function menu($url,$name){ 
     echo " 
      <ul> 
      <li class='Item1'><a>$name</a></li> 
      <ul class='submenu'> 
     "; 
    } 
?> 
<?php 
    function submenu($suburl,$subname){ 
     echo " 
      <li class='menuitem'><a>$subname</a></li> 
      </ul> 
      </ul> 
     "; 
    } 
?> 

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 



<style> 
li{ 
    float:left; 
    display:inline; 
    margin-left: 50px; 
} 

.menuitem{ 
    display:none; 
} 
</style> 

<script> 
jQuery(function() { 
    $('.Item1 a').click(function() { 
     $(this).parent().next().children('.menuitem').toggle(); 
    }); 
}) 
</script> 

菜單模型

<?php 
include(PATH_PUBLIC . '/admin/modules/menu/view/menu_view.php'); 
function menuModel() 
{ 
    connect(); 
    $menu = ("SELECT * FROM menu"); 
    $val = DB_array($menu, 'a+'); 
    $ii = count($val); 
    $ii = $ii - 1; 
    for ($i = 0; $i <= $ii; $i++) { 
     $name = $val[$i]['friendlyname']; 
     $url = $val[$i]['url']; 
     $id = $val[$i]['menu_id']; 
     menu($url, $name); 

     $submenu = ("SELECT * FROM submenu WHERE menu_id=$id"); 
     $valor = DB_array($submenu, 'a+'); 
     $qq  = count($valor); 
     $qq  = $qq - 1; 
     for ($q = 0; $q <= $qq; $q++) { 
      $subname = $valor[$q]['name']; 
      $suburl = $valor[$q]['url']; 
      submenu($suburl, $subname); 
     } 
    } 
} 
?> 

回答

0

在子菜單()函數的問題依賴。假設一個菜單項有4個子菜單。在第一個子菜單中,當第一次執行子菜單()時,關閉兩個<ul>元素,這意味着第二,第三和第四個子菜單不在列表中。

更改您的子菜單()函數來

function submenu($suburl,$subname){ 

    echo "<li class='menuitem'><a>$subname</a></li>"; 
} 

而剛出第二for

...... 

    for ($q = 0; $q <= $qq; $q++) { 
     $subname = $valor[$q]['name']; 
     $suburl = $valor[$q]['url']; 
     submenu($suburl, $subname); 
    } 

    echo '</ul></ul>'; 
} 
後關閉 <ul>小號