我在使用json文件和php从引导程序添加选项卡和选项卡窗格时遇到问题。
我可以使用以下代码成功添加实际的选项卡项目:
foreach ($json_a["content"] as &$item) {
echo '<li><a data-toggle="tab" href="#'.$item["name"].'">'.$item["name"].'</a></li>';
}
但是当使用以下代码添加实际选项卡内容时:
foreach ($json_a["content"] as &$item) {
echo '<div class="tab-pane" id="'.$item["name"].'"></div>';
只有第一个选项卡有效。。。我可以点击第一个选项卡,它会正确显示所有内容,但其他选项卡不会。
我觉得我在俯瞰一些很小的东西,但我已经被难住了一段时间。
如果需要,这里有一个指向JSON文件的链接。http://pastebin.com/MzYzEqM2
谢谢你的帮助!
我认为您的标记语法没有问题,只是可能您没有在JS脚本中初始化.tab()
。无论如何,这很好:
样本输出
$json_url = 'http://pastebin.com/raw.php?i=MzYzEqM2';
$data = json_decode(file_get_contents($json_url), true);
?>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<!-- markup -->
<ul class="nav nav-tabs" role="tablist" id="myTab">
<?php foreach($data['content'] as $content): ?>
<li class="">
<a href="#<?php echo $content['name']; ?>" role="tab" data-toggle="tab"><?php echo $content['name']; ?></a>
</li>
<?php endforeach; ?>
</ul>
<div class="tab-content">
<?php foreach($data['content'] as $content): ?>
<div class="tab-pane" id="<?php echo $content['name']; ?>"><?php echo $content['name']; ?></div>
<?php endforeach; ?>
</div>
<script type="text/javascript">
$(function () {
$('#myTab a:first').tab('show'); // dont FORGET this one
})
</script>