Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bootstrap-使用php的手风琴样式错误_Php_Html_Css_Bootstrap 4 - Fatal编程技术网

Bootstrap-使用php的手风琴样式错误

Bootstrap-使用php的手风琴样式错误,php,html,css,bootstrap-4,Php,Html,Css,Bootstrap 4,我的数据库中有一个类别表,我正在从中生成一个菜单。我可以这样完美地生成菜单: $renderItems = function($items) use (&$renderItems) { echo '<ul>'; foreach ($items as $item) { echo '<li>'; echo h($item->name); if ($item->children) {

我的数据库中有一个类别表,我正在从中生成一个菜单。我可以这样完美地生成菜单:

$renderItems = function($items) use (&$renderItems)
{
    echo '<ul>';
    foreach ($items as $item) {
        echo '<li>';
        echo h($item->name);

        if ($item->children) {
            $renderItems($item->children);
        }

        echo '</li>';
    }
    echo '</ul>';
};

$renderItems($list);
$renderItems=函数($items)使用(&$renderItems)
{
回声“
    ”; foreach($items作为$item){ 回音“
  • ”; echo h($item->name); 如果($item->children){ $renderItems($item->children); } 回音“
  • ”; } 回声“
”; }; $renderItems($list);
我试图用引导手风琴格式来设置这个菜单的样式,但是我发现很难正确地生成子项

菜单如下所示:

使用此代码:

<div class="accordion" id="accordionExample">
        <div class="card">

            <div class="card-header" id="headingOne">
                <h5 class="mb-0">

                    <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" style="padding: 0px">
                        Menu 1
                    </button>
                </h5>
            </div>

            <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
                <div class="card-body">
                    <ul style="list-style: none; padding: 0px 0px 0px 10px">
                        <li><i class="fas fa-angle-right"></i> SubMenu 1</li>
                        <hr>
                        <li><i class="fas fa-angle-right"></i> SubMenu 2</li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

菜单1
  • 子菜单1

  • 子菜单2
我试着用这种方式解决它,但我相信有什么地方出了问题

<div class="accordion" id="accordionExample">
    <div class="card">
        <?php
        $renderItems = function($items) use (&$renderItems)
        {
            foreach ($items as $item) {
                echo '<div class="card-header" id="headingOne">';
                echo '<h5 class="mb-0">';
                echo '<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" style="padding: 0px">';

                echo h($item->nome);
                echo '</button>';
                echo '</h5>';
                echo '</div>';

                echo '<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">';

                if ($item->children) {

                    echo '<div class="card-body">';
                    echo '<ul style="list-style: none; padding: 0px 0px 0px 10px">';
                    echo '<li>';
                    $renderItems($item->children);
                    echo '</li>';
                    echo '</ul>';                            
                    echo '</div>';
                }
                echo '</div>';
              }
          };
          $renderItems($list);
          ?>

          </div>
</div>


一个朋友能告诉我如何组织这件事吗?或者我做错了什么?我感谢你的评论。最终结果是这样的


引导关注html属性。你也应该。所以,

您可以更改并重试。(它们应该是用于基本求解的循环的动态值)<代码>标题栏,
折叠栏

如果你在循环之前测试小说,你自己就会看到问题

这个表达式也是
class=“collapse show”
;打开所有元素。如果需要,可以向第一个元素添加“show”


引导关注html属性。你也应该。所以,

您可以更改并重试。(它们应该是用于基本求解的循环的动态值)<代码>标题栏,
折叠栏

如果你在循环之前测试小说,你自己就会看到问题

这个表达式也是
class=“collapse show”
;打开所有元素。如果需要,可以向第一个元素添加“show”