2013-02-25 2 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 для публикации может прокомментировать ваш ответ, чтобы я мог лучше понять в будущем :) –

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

Я определил переменные в контроллере, но переменные, на мой взгляд, все еще неинициализированы, могут предложить что-то для этого? –

+0

Я обновил свой ответ. – mcryan

Смежные вопросы