Как создать динамический массив в Codeigniter PHP MySQL - PullRequest
0 голосов
/ 23 октября 2018

Мне действительно нужна помощь в этом.У меня есть массив, который берет данные из моих входных переключателей.Но проблема в том, что эти кнопки ввода могут не следовать точным числам из-за моего предложения where в операторе select.

   <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 голосов
/ 23 октября 2018

Если вы измените свой 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;.

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