我想知道,如果它有一个sub_menu,我如何将一个类添加到<li>
?
我有一个从mysql数据库填充的正确HTML菜单。
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="/about-us/">About us</a>
<ul class="dropdown-menu">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</li>
<li class="dropdown"><a href="contact.php">Contact</a></li>
</ul>
</div>
我正在使用bootstrap框架,因此对于下拉菜单,我必须将<li>
替换为:
<li class='dropdown'>
<a aria-expanded='false' aria-haspopup='true' class='dropdown-toggle' data-toggle='dropdown' href='/about-us/' role='button'>
About us <span class='caret'></span>
</a>
</li>
我想知道如何在循环中运行子菜单查询之前检查<li>
是否有任何sub_menu?这样我就可以为下拉菜单添加标记。
以下是生成MENU的PHP代码:
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<?php
$res1 = $connection->query("SELECT * FROM primary_nav ORDER BY m_menu_id ASC");
while($menu=$res1->fetch_array())
{
?>
<li>
<a href="<?php echo $domain; ?><?php echo $menu['m_menu_link']; ?>">
<?php echo $menu['m_menu_name']; ?>
</a>
<?php
$res1_pro=$connection->query("SELECT * FROM primary_subnav WHERE m_menu_id=".$menu['m_menu_id']." ORDER BY seq ASC");
//echo "\xA";
?>
<?php
if(mysqli_num_rows($res1_pro) > 0) {
echo '<ul class="dropdown-menu">' ."\xA";
while ($pro1_row = $res1_pro->fetch_array()) {
?>
<li>
<a href="<?php echo $domain; ?><?php echo $pro1_row['s_menu_link']; ?>">
<?php echo $pro1_row['s_menu_name']; ?>
</a>
</li>
<?php
}
echo '</ul>' ."\xA";
}
?>
</li>
<?php
echo "\xA";
}
?>
</ul>
</div>
我可以用jQuery做,但我想用HTML方式做。
答案 0 :(得分:2)
您必须在<li>
检查行中添加if
类。然后你必须添加一个else
子句来回显<li>
而没有类:
<?php
$res1 = $connection->query("SELECT * FROM primary_nav ORDER BY m_menu_id ASC");
while($menu=$res1->fetch_array())
{
$res1_pro=$connection->query("SELECT * FROM primary_subnav WHERE m_menu_id=".$menu['m_menu_id']." ORDER BY seq ASC");
//echo "\xA";
if(mysqli_num_rows($res1_pro) > 0) { // echo the list element with the class here
?>
<li class="foo">
<a href="<?php echo $domain; ?><?php echo $menu['m_menu_link']; ?>"><?php echo $menu['m_menu_name']; ?></a>
<?php
echo '<ul class="dropdown-menu">' ."\xA";
while ($pro1_row = $res1_pro->fetch_array()) {
?>
<li>
<a href="<?php echo $domain; ?><?php echo $pro1_row['s_menu_link']; ?>"><?php echo $pro1_row['s_menu_name']; ?></a>
</li>
<?php
}
echo '</ul>' ."\xA";
} else { // echo the normal list element if number of rows is 0
?>
<li>
<a href="<?php echo $domain; ?><?php echo $menu['m_menu_link']; ?>"><?php echo $menu['m_menu_name']; ?></a>
<?php
}
?>
</li>
<?php
echo "\xA";
}
?>
注意 :这种特殊的编码风格使得在需要时编写和维护代码非常困难。您可能希望研究将PHP和HTML结合起来的方法,以便更新和维护代码。