Codeigniter中的测验方法错了

时间:2015-12-13 10:20:34

标签: php codeigniter

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中没有足够的适应性。

1 个答案:

答案 0 :(得分:0)

在进一步研究之前,您应首先清理您的代码,以确保您没有任何不可预见的副作用:

在控制器的getQuiz()方法中,加载模型两次,同时渲染视图两次。一旦开始,一旦你检查了$ this-&gt; input-&gt; post()的存在。

PS for the mods:我知道这是更多的评论材料,但我还没有发表评论。