Как обновить массив данных в указанной строке c с помощью переключателя? Codeigniter - PullRequest
0 голосов
/ 15 марта 2020

Я создаю приложение для викторины бэкэнда, в котором пользователь бэкэнда изменит ответ или выбор.

Я бы хотел, чтобы переключатель установил значение 1 , когда я измените или обновите мой ответ или вариант и замените прежний вариант на 0 .

У меня есть таблица answers, и это мой пример ввода

correct поле - это поле, которое я хотел бы обновлять каждый раз, когда пользователь меняет выбор или ответ. Ожидаемый результат: если я обновлю правильный выбор, тогда прежний выбор будет заменен на 0. И новый выбор или ответ будут обновлены как 1 в правильно поле

id | answers | question_id | correct
1  |   A     |     1       |   0
2  |   B     |     1       |   1
3  |   C     |     1       |   0
4  |   D     |     1       |   0
5  |  F.1    |     2       |   0
6  |  F.2    |     2       |   1

Обновить модель - так что я уже могу обновить или изменить массив текстов ответов, но я Я не знаком с обновлением и заменой значения идентификаторов.

public function update_post(){

        $id = $this->input->post('answers_textId');

        $data = $this->input->post();

            for($i = 0; $i < (count($data['id'])); $i++){

                $batch[] = array(
                'id' => $data['id'][$i],
                'answer' => $data['answer'][$i],
                'correct' => $data['correct_id'][$i]
                );
            }

        return $this->db->update_batch('answers', $batch, 'id');
} 

В представлении

Это идентификатор

<input type="hidden" name="answers_textId" value="<?php echo $answer['question_id']; ?>" />  //For the question_id field

<input type="hidden" name="id[]" value="<?php echo $answer['id']; ?>" /> //For the id or PK

Это мой переключатель, его элементами являются opt_1, opt_2 и т. д.

<input type="radio" class="form-check-input" name="opt_<?php echo $answer['id']; ?>" value="1">

Это мое текстовое поле или текстовое поле

<h5>Choice: </h5><input type="text" name="answer[]" class="form-control" value="<?php echo $answer['answer']; ?>" />

1 Ответ

0 голосов
/ 15 марта 2020

Вы парень вчерашнего дня:)

Я предполагаю, что вы отправили данные на ваш контроллер

вам нужны сначала вопрос_идентификатор и идентификатор (из таблицы ответов)

обновить все правильно = false или 0, где question_id = $ id (идентификатор вопроса)

это сделает все правильно для вопроса 0, пример question_id = 1 имеет 4 ответа, он установит все 4 ответа правильные = 0

, а затем обновление правильное = 1, где id = answer_table_id (PK) и question_id = $ id (id вопроса)

это обновит ответ, который вы изменили, чтобы исправить = 1, вам не нужен вопрос_для этого, потому что id (таблица ответов pk) уникален

, поэтому теперь попробуйте сделать функцию.

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