Как я могу сохранить элементы ответов для вопросов в массиве, чтобы отправить их в базу данных с помощью контроллера и модели - PullRequest
0 голосов
/ 20 сентября 2018

Код ниже - это страница просмотра, используемая для отображения различных видов вопросов и их вариантов. Такие вопросы, как Заполнить пробелы и множественные ответы, состоят из нескольких элементов ответа.

<?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(); ?>

нижеэто скриншот.

Страница с вопросом выглядит следующим образом ..

Мне нужен массив, в котором выбраны все ответы и который отправляет данные в базу данных. База данных состоит изтаблицы tbl_response и имеет столбцы test_reponse_id, test_reponse_text, question_id,

1 Ответ

0 голосов
/ 20 сентября 2018

Есть несколько способов сохранить несколько элементов в одном значении.Вы можете использовать функцию implode () для сохранения в виде строки с разделителем, как вы уже делаете с $ test_question-> question_choices, который разделен символом \ n.Самая чистая альтернатива этому часто использует json_encode ().

в любом случае, так как вы, вероятно, собираетесь сравнивать выбранные ответы с чем-то другим, я предлагаю соблюдать осторожность в отношении согласованности формата и порядка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...