我真的需要帮助。 我有一个数组,可从输入单选按钮获取数据。但是问题在于,由于我的select语句中的where子句,这些输入按钮可能无法跟随确切的数字。
<form method="post" action="<?php echo base_url();?>index.php/Question/resultdisplay">
<?php foreach($questions as $row) {
?>
<?php $ans_array = array($row->correct, $row->wrong, $row->wrong1, $row->wrong2);
shuffle($ans_array);
?>
<p><?=$row->quiz_question?></p>
<input type="radio" name="quizid<?=$row->id?>" value="<?=$ans_array[0]?>" required/><?=$ans_array[0]?><br/>
<input type="radio" name="quizid<?=$row->id?>" value="<?=$ans_array[1]?>"/><?=$ans_array[1]?><br/>
<input type="radio" name="quizid<?=$row->id?>" value="<?=$ans_array[2]?>"/><?=$ans_array[2]?><br/>
<input type="radio" name="quizid<?=$row->id?>" value="<?=$ans_array[3]?>"/><?=$ans_array[3]?><br/>
<?php
}
?>
<br/>
<input type="submit" value="Finish"/>
</form>
public function resultdisplay()
{
$this->data['checks'] = array(
'ques1' => $this->input->post('quizid1'),
'ques2' => $this->input->post('quizid2'),
'ques3'=> $this->input->post('quizid3'),
'ques4'=> $this->input->post('quizid4'),
'ques5'=> $this->input->post('quizid5'),
'ques6'=> $this->input->post('quizid6'),
'ques7'=> $this->input->post('quizid7'),
'ques8'=> $this->input->post('quizid8'),
'ques9'=> $this->input->post('quizid9'),
'ques10'=> $this->input->post('quizid10'),
'ques11'=> $this->input->post('quizid11'),
);
$this->load->model('quizmodel');
$this->data['results'] = $this->quizmodel->getQuestions();
$this->load->view('result_display', $this->data);
}
我希望数组是动态的。因为如果数据库中的数据大于十一(11),则用户在其余测验中将无法获得结果。
答案 0 :(得分:0)
如果您将resultdisplay()
函数回合更改为首先获取问题,然后为每个问题寻找答案...
public function resultdisplay()
{
$this->load->model('quizmodel');
$this->data['results'] = $this->quizmodel->getQuestions();
$this->data['checks'] = [];
for ( $i = 1; $i <= count($this->data['results']); $i++ ) {
$this->data['checks'][] = $this->input->post('quizid'.$i);
}
$this->load->view('result_display', $this->data);
}
最后将得到一个数组(带有数字索引-您可以通过将$this->data['checks'][$keyName]=
更改为$keyName
来更改它)。任何遗漏的答案将包含null
,如果需要,您也可以在:null;
进行更改。