2012-03-02 101 views
0

我正在使用CodeIgniter,並有問題發送變量使用$ this-> load-> view('註冊',$ data)。Codeigniter傳遞變量錯誤

這是我的控制器中的一些代碼。

function create_member() 
{ 
    $this->load->library('form_validation'); 
    $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]'); 
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email'); 
    $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]'); 
    $this->form_validation->set_rules('password1', 'Confirm Password', 'trim|required|matches[password]'); 

    if($this->form_validation->run() == FALSE) 
    { 
     $this->load->view('signup'); 
    }else 
    { 
     $this->load->model('membership'); 

     if($query=$this->membership->check_username() == TRUE) 
     { 
      $data['msg']= "Username exist"; 
      $this->load->view('signup',$data); //problem encounter here. 

     }else 
     { 
      if($query = $this->membership->create_member()) 
      { 
       $data['main_content'] = 'signup_successful'; 
       $this->load->view('include/template', $data); 
      }else 
      { 
       $this->load->view('signup_form'); 
      } 
     } 
    } 
} 

而且這裏的錯誤消息: 一個PHP錯誤遇到
嚴重性:注意
消息:未定義的變量:味精
文件名:觀點/ signup.php
行號:99

<?php echo $msg; ?> // code inside view/signup.php 

回答

1

這可能是因爲你的代碼正在進入這個塊,你沒有設置$data['msg']在這裏,所以在視圖中不存在:

else 
     { 
      if($query = $this->membership->create_member()) 
      { 
       $data['main_content'] = 'signup_successful'; 
       $this->load->view('include/template', $data); 
      }else 
      { 
       $this->load->view('signup_form'); 
      } 
     } 

無論是在你的方法開始initalize $data['msg']爲空,或者做一次檢查在視圖中查看它是否存在。

+0

謝謝,你說得對,我必須在開始時將$ data ['msg']初始化爲空:) – 2012-03-02 22:09:25

0
if($this->form_validation->run() == FALSE) 
{ 
    $this->load->view('signup'); 
} 

您正在加載視圖而未傳遞任何變量,因此不會設置$msg

您需要將isset($msg)添加到視圖(或控制器的$data['msg'] = '')。