簡體   English   中英

未定義的變量getQuestion Codeigniter

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM