[英]Undefined variable getQuestion Codeigniter
消息:未定義的變量:getQuestion
我正在使用codeigniter創建一個多項選擇測驗。 我正在嘗試將getQuestion從模型傳遞到視圖,但是我收到未定義的變量錯誤。 視圖應顯示問題
更新:我設法使其正常運行,共有7個問題,由於它們隨機顯示,因此有時會重復出現該問題。 如何在模型中解決此問題?
同樣,在回答了7個問題之后,測驗也結束了。
模型:
class Quiz extends CI_Model
{
private $questionArray = array();
private $answerArray = array();
private $incorrectArray = array();
private $incorrectArray1 = array();
private $incorrectArray2 = array();
function __construct()
{
parent::__construct();
$this->load->database();
}
function startQuiz()
{
$this->db->select('*');
$qres = $this->db->get('questions');
$ares = $this->db->get('answer');
foreach ($qres->result() as $row ) {
$this->questionArray[] = $row->question;
}
foreach ($ares->result() as $row) {
$this->answerArray[] = $row->c_answer;
}
foreach ($ares->result() as $row) {
$this->incorrectArray[] = $row->i_answer;
}
foreach ($ares->result() as $row) {
$this->incorrectArray1[] = $row->i_answer1;
}
foreach ($ares->result() as $row) {
$this->incorrectArray2[] = $row->i_answer2;
}
//Retrieve question in random order
$max = count($this->questionArray);
$questionPos = rand(0, $max - 1);
//retrieve question
$getQuestion = $this->questionArray[$questionPos];
//retrieve correct answer
$getAnswer = $this->answerArray[$questionPos];
//retrieve incorrect answers
$getIncorrect = $this->incorrectArray[$questionPos];
$getIncorrect1 = $this->incorrectArray1[$questionPos];
$getIncorrect2 = $this->incorrectArray2[$questionPos];
//retrieve wrong answer corresponding to the Question
$wrong = $questionPos;
while ($wrong != $questionPos) {
$wrong = rand(0,$max-1);
}
$wronganswer = $this->incorrectArray[$wrong];
$wronganswer1 = $this->incorrectArray1[$wrong];
$wronganswer2 = $this->incorrectArray2[$wrong];
//Random position of answers
$choice = rand(0,1);
if ($choice == 0) {
$answer1 = $getAnswer;
$answer2 = $wronganswer;
$answer3 = $wronganswer1;
$answer4 = $wronganswer2;
}
else
{
$answer1 = $wronganswer;
$answer2 = $getAnswer;
$answer3 = $wronganswer1;
$answer4 = $wronganswer2;
}
return array('id' => $questionPos,'getQuestion' => $getQuestion,'answer1' => $answer1,'answer2' => $answer2,'answer3' => $answer3, 'answer4' => $answer4);
}
}
控制器:
class Question extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('quiz');
}
function start()
{
$option = $this->input->get('name', false);
$questionid = $this->input->get('id', false);
if ($option === false) {
$start = $this->quiz->startQuiz();
$this->load->view('quiz_view', $start);
} else {
$this->load->view('quiz_view', array('name'=>$option));
}
}
}
視圖:
<h5><?php echo $getQuestion ?></h5>
在您的代碼中,當$ option = false時,getQuestion不存在。
if ($option == false) {
$start = $this->quiz->startQuiz();
$this->load->view('quiz_view', $start);
} else {
$this->load->view('quiz_view', array('name'=>$option,'getQuestion'=>''));
}
在您的控制器中
更改:
if ($option === false) {
$start = $this->quiz->startQuiz();
$this->load->view('quiz_view', $start);
}
至:
if ($option === false) {
$data['start'] = $this->quiz->startQuiz();
$this->load->view('quiz_view', $data);
}
然后在您的視圖頁面上打印print_r($start);
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.