如何将问题的答案项保存在数组中,以便使用控制器和模型将它们发送到数据库

pxy2qtax  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(379)

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

  1. <?php echo form_open('courseware/saveanswer'); ?>
  2. <?php if(count($test_questions)):?>
  3. <?php $i = 1 ?>
  4. <ol>
  5. <?php foreach($test_questions as $test_question):?>
  6. <li>
  7. <?php if($test_question->question_type == 'Fill-blanks'):?>
  8. <?php $test_question->question_text = str_replace('___',form_input(array('name'=>'answer[]','id'=>'answer_'.$i++,'type'=>'text','size'=>'8')),$test_question->question_text)?>
  9. <?php endif ?>
  10. <?php echo $test_question->question_text ?>
  11. <?php if($test_question->question_type == 'Multi-choice'):?>
  12. <?php $choices = explode("\n", $test_question->question_choices)?>
  13. <?php if(count($choices)):?>
  14. <ul>
  15. <?php foreach($choices as $choice):?>
  16. <li><?php echo form_radio('answer'.$test_question->question_id,$choice) ?> <?php echo $choice ?></li>
  17. <?php endforeach ?>
  18. </ul>
  19. <?php echo form_submit('$save', 'Save') ?>
  20. <?php endif ?>
  21. <?php elseif($test_question->question_type == 'Multi-answer'):?>
  22. <?php $choices = explode("\n", $test_question->question_choices)?>
  23. <?php if(count($choices)):?>
  24. <ul>
  25. <?php foreach($choices as $choice):?>
  26. <li><?php echo form_checkbox('answer',$choice) ?> <?php echo $choice ?></li>
  27. <?php endforeach ?>
  28. </ul>
  29. <?php echo form_submit('$save', 'Save') ?>
  30. <?php endif ?>
  31. <?php elseif($test_question->question_type == 'True/False'):?>
  32. <ul>
  33. <li><?php echo form_radio('answer_'.$test_question->question_id,1) ?> True</li>
  34. <li><?php echo form_radio('answer_'.$test_question->question_id,0) ?> False</li>
  35. </ul>
  36. <?php echo form_submit('$save', 'Save') ?>
  37. <?php else:?>
  38. <?php endif ?>
  39. </li>
  40. <?php endforeach?>
  41. <?php echo form_close(); ?>

下面是一个截图。
问题页面如下所示。。
我想要一个数组,其中选择了所有答案,并将数据发送到数据库数据库数据库由tbl\u response表组成,并包含test\u response\u id、test\u response\u text、question\u id列,

kognpnkq

kognpnkq1#

有许多方法可以将多个元素存储在一个值中。您可以使用implode()函数保存为带分隔符的字符串,就像您已经在使用$test\u question->question\u choices时所做的那样,该选项由'\n'分隔。最干净的替代方法通常是使用json\u encode()。
不管是哪种方式,由于您可能会将所选答案与其他答案进行比较,我建议您注意保持格式和顺序的一致性。

相关问题