codeigniter变量未在视图页面上初始化

时间:2013-02-25 12:35:29

标签: php forms codeigniter

我是codeigniter的新手,我试图在网页上显示一些数据,我有控制器和模型,但我的变量daunt似乎传递到视图页面看看我的代码,如果你能告诉我tnx对你有什么不妥。

控制器:

class Survaycontroller extends CI_Controller{
    // 'QID, Question, qA, qB, qC'
    function index()
    {
        $arrData = array();
        $arrData["qA"] = $this->input->post("qA");
        $arrData["qB"] = $this->input->post("qB");
        $arrData["qC"] = $this->input->post("qC");
        $arrData["Question"] = $this->input->post("Question");

        $this->load->model('survay');

        $survay_data = $this->survay->dosurvay($arrData);

        $viewData['survay_data'] = $survay_data;

        $this->load->view('survay_view', $viewData);
    }
}

查看:

<html>
  <body>
    <?php form_open('survay'); ?>
    <h1><?php echo $Question;?></h1>
    <?php echo $qA; ?><input type="checkbox" name="q" value="qA">
    <?php echo $qB; ?><input type="checkbox" name="q" value="qB">
    <?php echo $qC; ?><input type="checkbox" name="q" value="qC">
    <?php echo form_close(); ?>
  </body>
</html>

型号:

       function dosurvay($arrData){

            $this->db->select('QID, Question, qA, qB, qC');
            $this->db->from('tblquestions');
            $this->db->where('Question', $arrData['Question']);
            $this->db->where('qA', $arrData['qA']);
            $this->db->where('qB', $arrData['qB']);
            $this->db->where('qC', $arrData['qC']);
            $this -> db -> limit(1);


       $query = $this -> db -> get();

       if($query -> num_rows() == 1)
       {
         return $query->result();
       }
       else
       {
         return false;
       }
     }






}

2 个答案:

答案 0 :(得分:1)

假设您的模型返回所有​​数据。 你必须使用foreach,因为数据存储在数组中,然后你可以像这样检索它。

<html>
  <body>
    <?php form_open('survay'); ?>
     <?foreach($survay_data as $survay):?>
    <h1><?php echo $survay->Question;?></h1>
    <?php echo $survay->qA; ?><input type="checkbox" name="q" value="qA">
    <?php echo $survay->qB; ?><input type="checkbox" name="q" value="qB">
    <?php echo $survay->qC; ?><input type="checkbox" name="q" value="qC">
     <?endofreach;?>
    <?php echo form_close(); ?>
  </body>
</html>

答案 1 :(得分:0)

阅读你的代码我真的不知道你想要完成什么,但它有明显的问题。

首先在您的控制器中分配后期变量,在第一次加载时您不会有后置变量,因此所有这些行都会立即失败。

然后你只将一个数据变量survay_data传递给视图,但是你在视图中尝试使用$ qA等,这些变量不存在。

如果您希望从survay_data数组中获取那些,那么您需要按如下方式加载它们:

<?php echo $survay_data[0]['qA']; ?><input type="checkbox" name="q" value="qA">