2013-02-25 35 views
0

我只是一個初學者在PHP和codeigniter我想從模型中傳遞數據到控制器,然後在視圖中,但我有未初始化的變量我將如何初始化它們? 這裏是我的代碼:codeigniter中的變量

survaycontroller.php

<?php 
class Survaycontroller extends CI_Controller{ 
    // 'QID, Question, qA, qB, qC' 

    function index() 
    { 
      $this->load->view('survay_view'); 

      $this->load->model('survay'); 
      $survay_data = $this->survay->dosurvay($Question, $qA, $qB, $qC); 

      $viewData = array(); 
      $viewData['survay_data'] = $survay_data; 
      $this->load->view(survay_view, $viewData); 
     } 
} 
?> 

survay_view.php

</head> 

<body> 
    <?php form_open('index'); ?> 
    <h1><?php echo $Question;?></h1> 
    <?php echo $qA; ?><?php form_checkbox('qA'); ?> 
    <?php echo $qB; ?><?php form_checkbox('qB');?> 
    <?php echo $qC; ?><?php form_checkbox('qC'); ?> 

</body> 

survay.php

<?php 
class Survay extends CI_Model{ 

    function dosurvay($Question, $qA, $qB, $qC){ 
     $this->db->select('QID, Question, qA, qB, qC'); 
     $this->db->from('tblquestions'); 
     $this->db->where('Question', $Question); 
     $this->db->where('qA', $qA); 
     $this->db->where('qB', $qB); 
     $this->db->where('qC', $qC); 
     $this -> db -> limit(1); 

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

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

回答

1

在你的控制器:

function index() 
    { 
     //store your post form data into an array 
     $arrData = array(); 
     $arrData["qA"]  = $this->input->post("qAfieldName"); 
     $arrData["qB"]  = $this->input->post("qBfieldName"); 
     $arrData["qC"]  = $this->input->post("qCfieldName"); 
     $arrData["question"]  = $this->input->post("questionfieldName"); 
     $this->load->model('survay'); 
     //pass data array into model   
     $survay_data = $this->survay->dosurvay($arrData); 
    } 

,並在型號:

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); 

............other stuff 
} 
+0

tnx發佈可以評論你的答案,所以我可以有一個更好的瞭解在未來:) – 2013-02-25 12:22:17

0

這是給你的問題行了,因爲你沒有初始化的變量:

$survay_data = $this->survay->dosurvay($Question, $qA, $qB, $qC); 

$Question, $qA, $qB, $qC天堂沒有被傳遞給函數或者在你的代碼的任何地方initilized的變量。

您需要定義他們要發送給函數的變量:

$question = 'How are you?'; 
$qA = 'qA'; 
$qB = 'qB'; 
$qC = 'qC'; 

除此之外,你傳遞一個數組元素1到您的視圖:$viewData['survay_data']。該變量包含您正在查找的變量數組。相反,只是做這樣的事情:

$viewData = $survay_data; 

您還需要加上引號您的視圖名稱:

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

我在控制器中定義了變量,但是我的觀點中的變量仍然未初始化你能爲此建議嗎? – 2013-02-25 11:48:06

+0

我已經更新了我的答案。 – mcryan 2013-02-25 11:58:17