【发布时间】:2015-07-27 15:22:56
【问题描述】:
这是一个简单的引导手风琴:
<div class="panel-group" id="accordion1">
<div class="panel panel-info">
<div class="panel-heading" data-toggle="collapse" data-parent="#accordion3" data-target="#_1-1">XXX</div>
<div id="_1-1" class="panel-collapse collapse">XXX</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" data-toggle="collapse" data-parent="#accordion3" data-target="#_1-2">XXX</div>
<div id="_1-2" class="panel-collapse collapse">#accordion2</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" data-toggle="collapse" data-parent="#accordion3" data-target="#_1-3">XXX</div>
<div id="_1-3" class="panel-collapse collapse">XXX</div>
</div>
</div>
要创建子手风琴,我们可以复制#accordion1 并粘贴到accordion2 文本上
HERE 有一个我想要获得的示例,通过将 PHP 数组“转换”为手风琴,例如:
<?php
$unit = array (
"unit1" => array(
"outcome1-1" => "element1-1",
"outcome1-2" => "element1-2"
),
"unit2" => array(
"outcome2-1" => array(
"picture2-1" => "img2-1"
),
"outcome2-2" => "element2-2"
),
"unit3" => array(
"outcome3-1" => "element3-1",
"outcome3-2" => "element3-2"
)
);
?>
这是我尝试动态生成引导手风琴的方式:
<?php
function array2accordion($array, $level = 1) {
$out='<div id="accordion'.$level.'" class="panel-group">';
$i=0; foreach($array as $key => $elem){ $i++;
if(!is_array($elem)){
$out=$out.'
<div class="panel panel-info">
<div class="panel-heading" data-toggle="collapse" data-parent="#accordion'.$level.'" data-target="#_'.$key.$level.'-'.$key.$i.'">'.$key.'</div>
<div id="_'.$key.$level.'-'.$key.$i.'" class="panel-collapse collapse">'.$key.'</div>
</div>';
}else{
$out=$out.'
<div class="panel panel-info">
<div class="panel-heading" data-toggle="collapse" data-parent="#accordion'.$level.'" data-target="#_'.$key.$level.'-'.$key.$i.'">'.$key.'</div>
<div id="_'.$key.$level.'-'.$key.$i.'" class="panel-collapse collapse">'.array2accordion($elem, $level + 1).'</div>
</div>';
}
}
$out=$out.'</div>';
return $out;
}
echo array2accordion($unit);
?>
其实它不能正常工作,我做错了什么?
【问题讨论】:
-
@JFDion There是我刚刚尝试的,但它根本不起作用......实际上我有点困惑,因为我不知道如何动态地重新创建手风琴结构。 .. 这让我一整天都发疯了
-
我认为您在这里缺少的是第一个
$out .=之后的连接运算符 -
@Uchiha 请你更具体地解释一下
标签: php arrays twitter-bootstrap accordion