我正在开发一个模块,其中导航菜单的一部分必须与关联的下拉菜单/子菜单一起动态添加。就像我的数据库tbl_levels
中有一个表,其中保留了两个LEVELS。在每个级别下,都有相关的单位,其详细信息保存在另一个表tbl_question_module
中,其中id
中的tbl_levels
作为列level
。我希望这两个级别一个接一个地列出,这就是我正在得到的。现在,当从导航菜单中单击“级别1”或“级别2”时,我想将与每个级别关联的单位列出为下拉列表。我已经实现了以下代码,但是我得到的只是LEVEL1的子菜单,当单击LEVEL 2时,它将再次打开LEVEL 1列表。我可以了解我哪里出错了。这将非常有帮助。
<?php
$sq_lev = $db->query("SELECT id,level_title from tbl_levels WHERE level_status = 1 ");
while($row_lev=mysql_fetch_array($sq_lev))
{
$level_id=$row_lev['id'];
$level_title=$row_lev['level_title '];
?>
<li data-toggle="collapse" data-target="#products3" class="collapsed"> <a href="#"><span class="glyphicon glyphicon-book"></span><?php echo $level_title; ?><span class="arrow"></span></a>
<ul class="sub-menu collapse" id="products3">
<?php
$sq = $db->query("SELECT id, title from tbl_question_module WHERE status = 1 AND level = $level_id ");
while($rowM=mysql_fetch_array($sq))
{ ?>
<li><a href="studyMaterial.php?unit_id=<?php echo $fnc->encode($rowM['id']) ; ?>"><?php echo $rowM['title'] ; ?></a></li>
<?php } ?>
</ul>
</li> <?php } ?>
答案 0 :(得分:2)
您必须在循环内动态更新data-target
<li data-toggle="collapse" data-target="#products<?= $level_id ?>" class="collapsed"> <!-- **Changes here** -->
<a href="#">
<span class="glyphicon glyphicon-book"></span>
<?php echo $level_title; ?>
<span class="arrow"></span>
</a>
<ul class="sub-menu collapse" id="products<?= $level_id ?>"> <!-- **Changes here** -->
html的 ID 属性在当前页面中始终是唯一的。并且根据jquery
或data-target
,如果两个以上的元素包含相同的ID,则它始终指向正文中的第一个元素