2012-03-02 11 views
0

私はCodeIgniterを使用していて、 $ this-> load-> view( 'signup'、$ 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'); 
      } 
     } 
    } 
} 

そして、ここでエラーメッセージ:未定義の変数:MSG
ファイル名:ビュー/ signup.php
行番号:99


メッセージに注意してください: A PHPエラーが
重要度を発生しました
<?php echo $msg; ?> // code inside view/signup.php 

答えて

1

これはおそらくコードがこのブロックに入り、0を設定していないためですここでビューでは:

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

存在しないか、あなたのメソッドの開始時にnullに$data['msg']をinitalize、またはそれが存在するかどうかを確認するためのビューでチェックを行うようにします。

+0

ありがとうございました、私は$ data ['msg']を初期化する必要があります。 –

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

変数を渡さずにビューを読み込んでいるため、$msgは設定されません。

ビューにisset($msg)(コントローラには$data['msg'] = '')を追加する必要があります。

関連する問題