【问题标题】:How can I save the items of answers for a questions in an array so that I send them to the database using a controller and a model如何将问题的答案项保存在数组中,以便使用控制器和模型将它们发送到数据库
【发布时间】:2018-09-20 09:49:07
【问题描述】:

下面的代码是用于显示不同类型的问题及其选择的视图页面。填空和多选等问题包含多个答案元素。

<?php echo form_open('courseware/saveanswer'); ?>
<?php if(count($test_questions)):?>
<?php $i = 1 ?>
<ol>
   <?php foreach($test_questions as $test_question):?>
 <li>
<?php if($test_question->question_type == 'Fill-blanks'):?>
    <?php $test_question->question_text = str_replace('___',form_input(array('name'=>'answer[]','id'=>'answer_'.$i++,'type'=>'text','size'=>'8')),$test_question->question_text)?>
<?php endif ?>
    <?php echo $test_question->question_text ?>
    <?php if($test_question->question_type == 'Multi-choice'):?>
        <?php $choices = explode("\n", $test_question->question_choices)?>
        <?php if(count($choices)):?>
            <ul>
            <?php foreach($choices as $choice):?>
                <li><?php echo form_radio('answer'.$test_question->question_id,$choice) ?> <?php echo $choice ?></li>
            <?php endforeach ?>
            </ul>
            <?php echo form_submit('$save', 'Save') ?>
        <?php endif ?>
    <?php elseif($test_question->question_type == 'Multi-answer'):?>
        <?php $choices = explode("\n", $test_question->question_choices)?>
        <?php if(count($choices)):?>
            <ul>
            <?php foreach($choices as $choice):?>
                <li><?php echo form_checkbox('answer',$choice) ?> <?php echo $choice ?></li>
            <?php endforeach ?>
            </ul>
            <?php echo form_submit('$save', 'Save') ?>
        <?php endif ?>
    <?php elseif($test_question->question_type == 'True/False'):?>
        <ul>
            <li><?php echo form_radio('answer_'.$test_question->question_id,1) ?> True</li>
            <li><?php echo form_radio('answer_'.$test_question->question_id,0) ?> False</li>
        </ul>
        <?php echo form_submit('$save', 'Save') ?>
    <?php else:?>
    <?php endif ?>
</li>
<?php endforeach?>
<?php echo form_close(); ?>

下面是截图。

The question page looks like this..

我想要一个选择了所有答案并将数据发送到数据库的数组 该数据库由表 tbl_response 组成,并具有列 test_reponse_id, test_reponse_text , question_id,

【问题讨论】:

  • title 不适合这个问题,而且目前的问题还不清楚。举一个例子及其预期的输出。在这种情况下,一个问题和您期望的数组

标签: mysql arrays database codeigniter model-view-controller


【解决方案1】:

有多种方法可以将多个元素存储在一个值中。您可以使用 implode() 函数将其保存为带有分隔符的字符串,就像您已经使用 $test_question->question_choices 所做的那样,它由“\n”分隔。最干净的替代方法通常是使用 json_encode()。

无论哪种方式,由于您可能会将所选答案与其他内容进行比较,因此我建议您注意保持格式和顺序一致。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2019-07-28
    • 1970-01-01
    • 2015-10-16
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多