首页 > 解决方案 > 如何使用它们的 ID 动态获取 Tabs 和 Pills 中的数据?使用 PHP 和 Codeigniter

问题描述

我正在为问答创建一个模块,我需要分别获取数据。

我创建了一个选项卡,我将在其中单击我想要回答的问题,它的子级或答案应该匹配。

供视觉参考,这是我的问题

我有这些数据都被提取了,这不应该。这就是我创建 Tabs and Pills 的原因,以便我可以将问题和答案分开

1213是每个数据的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>

标签: phpcodeignitercodeigniter-3

解决方案


修复选项卡结构,循环问题 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>

推荐阅读