Foreach 并继续创建子菜单列

Posted

技术标签:

【中文标题】Foreach 并继续创建子菜单列【英文标题】:Foreach and continue to create submenu columns 【发布时间】:2014-01-16 12:21:42 【问题描述】:

我正在使用 Opencart 和 Bootstrap 2.3.2 来尝试创建带有列的子菜单。 我创建了一个 opencart 模块,它基本上是类别模块的副本。我将使用此模块在下拉菜单中的主导航中显示类别。问题是,如果类别超过 5 个,那么我想在下拉菜单中创建一个新列。

我目前的php是:

<ul class="dropdown-menu">
    <li>
      <div class="row-fluid">
        <ul class="box-category">
            <?php foreach ($categories as $category)  ?>
                <li>
                    <?php if ($category['category_id'] == $category_id)  ?>
                        <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
                    <?php  else  ?>
                        <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
                    <?php  ?>
                </li>
            <?php  ?>
        </ul>
       </div>
    </li>
</ul>

我想要的结果是:

<ul class="dropdown-menu">
    <li>
        <div class="row-fluid">
            <ul class="box-category span6">
                <li><a href="#">Category 1</a></li>
                <li><a href="#">Category 2</a></li>
                <li><a href="#">Category 3</a></li>
                <li><a href="#">Category 4</a></li>
                <li><a href="#">Category 5</a></li>
            </ul>
            <ul class="box-category span6">
                <li><a href="#">Category 6</a></li>
                <li><a href="#">Category 7</a></li>
            </ul>
        </div>
    </li>
</ul>

我一直在寻找在 foreach 语句中使用的“继续”,但某些代码(例如将 span6 类添加到 ul)不在 foreach 语句中。如何修改我的代码以获得预期的结果?

【问题讨论】:

你有没有考虑过使用像Mustache这样的模板引擎? @Brodie - 感谢您的链接。老实说,这有点让我头疼,但我会进一步研究。 我推荐这个Net Tuts tutorial 让你开始。 【参考方案1】:

为此,您需要使用modulus operator:

<?php $count = 0; ?>
<?php foreach ($categories as $category)  ?>
    <?php // The if statement should be true every fifth iteration ?>
    <?php if( $count % 5 == 0)  ?>
    <ul class="box-category span6">
    <?php  ?>
    <li>
        <?php if ($category['category_id'] == $category_id)  ?>
            <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
        <?php  else  ?>
            <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
        <?php  ?>
    </li>
    <?php if( $count % 5 == 0)  ?>
        <ul class="box-category">
    <?php  ?>
<?php 
    $count++;
 
?>

这相当粗糙,可能可以稍微清理一下,但应该可以工作(未经测试)

【讨论】:

嗨,感谢您为我指明了正确的方向。您的示例还没有完成,但至少现在我有一些东西可以使用。谢谢

以上是关于Foreach 并继续创建子菜单列的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用 css 为垂直导航栏创建子菜单

Android攻城狮使用SubMenu创建子菜单

CSS/JQuery:如何为表格行创建子菜单,使鼠标从行到菜单保持可见?

el-menu 菜单递归循环

VB子菜单问题

Android menu 简单创建