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”