我正在制作一个后端测验应用程序,后端用户将在其中更改答案或选择。
我希望单选按钮将值更改为 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
更新模型-这样我就可以更新或更改答案文本数组,但是我不熟悉更新和替换ID的值。
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');
}
视图中
这是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']; ?>" />
答案 0 :(得分:0)
你是昨天的家伙:)
我假设您已经向控制器发送了数据
您需要question_id和id(来自答案表)
首先全部更新正确=假或0,其中question_id = $ id(问题的ID)
这将使所有问题的答案都正确0,例如question_id = 1的答案为4,将所有4个答案的答案都设置为正确= 0
然后更新正确= 1,其中id = answer_table_id(PK),question_id = $ id(问题ID)
这将更新您所做更改的答案以更正= 1 您不需要此问题,因为ID(答案表pk)是唯一的
现在尝试制作该功能。