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