如何在Codeigniter PHP MySQL中创建动态数组

时间:2018-10-23 06:26:35

标签: php mysql codeigniter

我真的需要帮助。 我有一个数组,可从输入单选按钮获取数据。但是问题在于,由于我的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),则用户在其余测验中将无法获得结果。

1 个答案:

答案 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;进行更改。

相关问题