在this问题之后,我还在Codeigniter中创建了一个测验方法。这是我的代码的片段。 控制器:
function quiz(){
$this->load->model('belajar_model');
$data['data']=$this->belajar_model->quiz();
$this->load->view('quiz',$data);
}
function getQuiz($id){
$this->load->model('belajar_model');
$data['data']=$this->belajar_model->getQuiz($id);
$this->load->view('quiz',$data);
$this->load->model('belajar_model');
$data['data']=$this->belajar_model->quiz();
if($this->input->post()){
$jawab = $this->belajar_model->getQuiz($id);
$soal = $this->belajar_model->getQuiz($id);
if($jawab['benar']==$this->input->post('jawab')){
}
$data['jawab'] = $soal;
$data['next'] = $id+1;
$this->load->view('quiz', $data);
}
else{
$jawab = $this->belajar_model->getQuiz(1);
$data['soal'] = $soal;
$data['next'] = 2;
$this->load->view('quiz', $data);
}
}
这是模型:
function quiz(){
//$this->db->where('id = 1');
$query = $this->db-> get('kuis');
return $query->result_array();
}
function getQuiz($data){
$this->db->where('id',$data);
$query = $this->db-> get('kuis');
return $query->result_array();
}
这是视图的片段(我的朋友做了视图):
<h3>Pilihlah salah satu jawaban yang benar!</h3>
<?php foreach ($data as $list){
echo"<p>".$list['soal']."</p>";
echo"<table>
<tr><td><label><input type='radio' name='jawab' value='a'>".$list['ansA']."</label></td></tr>
<tr><td><label><input type='radio' name='jawab' value='b'>".$list['ansB']."</label></td></tr>
<tr><td><label><input type='radio' name='jawab' value='c'>".$list['ansC']."</label></td></tr>
<tr><td><label><input type='radio' name='jawab' value='d'>".$list['ansD']."</label></td></tr>
";
}?>
<tr><td><button type='submit' >Submit</button><td></tr><table>
在尝试实现它之后,通过一些修改使其在页面上工作,页面像this一样混乱,它是混乱的,因为问题和答案没有正确显示。它也没有从测验中收到输入,并且显示了一些错误。
我的问题是:哪里出错了?是从视图还是模型/控制器不对?仅供参考,一些属性是用我的母语(印度尼西亚语)写的,以完成我的学业,使我的朋友和讲师都能理解这些代码。
感谢您的回答!这对我来说意味着很多网页的工作,因为这是我的最终项目,我在php和codeigniter中没有足够的适应性。
答案 0 :(得分:0)
在进一步研究之前,您应首先清理您的代码,以确保您没有任何不可预见的副作用:
在控制器的getQuiz()方法中,加载模型两次,同时渲染视图两次。一旦开始,一旦你检查了$ this-&gt; input-&gt; post()的存在。
PS for the mods:我知道这是更多的评论材料,但我还没有发表评论。