php - 如何使用它们的 ID 动态获取 Tabs 和 Pills 中的数据?使用 PHP 和 Codeigniter
问题描述
我正在为问答创建一个模块,我需要分别获取数据。
我创建了一个选项卡,我将在其中单击我想要回答的问题,它的子级或答案应该匹配。
供视觉参考,这是我的问题
我有这些数据都被提取了,这不应该。这就是我创建 Tabs and Pills 的原因,以便我可以将问题和答案分开
12和13是每个数据的id号
所以在 Tabs and Pills 中,我得到了这个
问题在于我无法动态获取数据,它只显示 ID 13数据用于问答。如何动态更改它,以便我可以来回单击选项卡并通过其 ID 显示正确的数据?
我需要获取第一个选项卡的 ID 12
所以这是我的看法
<ul class="nav nav-tabs" role="tablist">
<?php foreach($questions as $question){ ?>
<?php echo $question->id; ?>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#<?php echo $question->id ?>" role="tab"><h4><?php echo $question->question ?></h4></a>
</li>
<?php } ?>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane" id="13" role="tabpanel">
<div class="card" style="border:2px solid black;">
<div class="card-body">
<?php foreach($this->question_model->findAnswersByQuestion($question->id) as $answer){ ?>
<?php if($answer->type_id==0): ?>
<input type="radio" name="question_<?php echo $question->id; ?>" value="<?php echo $answer->answer ?>" required/>
<?php echo $answer->answer; ?><hr>
<?php endif; ?>
<?php if($answer->type_id==1): ?>
<div class="input-group input-group-lg">
<input type="text" class="form-control col-md-6" placeholder="Enter Answer" name="question_<?php echo $question->id; ?>" required/>
</div>
<?php endif; ?>
<?php } ?>
</div>
</div><br>
</div>
</div>
解决方案
修复选项卡结构,循环问题 for nav-item
,但不循环 for tab-pane
,这就是为什么单击选项卡链接什么都不做的原因。
<ul class="nav nav-tabs" role="tablist">
<?php foreach($questions as $question){ ?>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#tab-<?php echo $question->id ?>" role="tab"><h4><?php echo $question->question ?></h4></a>
</li>
<?php } ?>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<?php foreach($questions as $question){ ?>
<div class="tab-pane" id="tab-<?= $question->id ?>" role="tabpanel">
<div class="card" style="border:2px solid black;">
<div class="card-body">
<?php foreach($this->question_model->findAnswersByQuestion($question->id) as $answer){ ?>
<!-- form input $answer / item -->
<?php } ?>
</div>
</div>
</div>
<?php } ?>
</div>