Codeigniter未定义状态变量

时间:2012-10-25 01:57:20

标签: php codeigniter controller

我有这样的登录表单

enter image description here

登录到应用程序,它会显示如下菜单 enter image description here

直到我点击某个菜单才行,然后显示 enter image description here

这是我点击的链接的控制器 我认为keuangan已经在菜单上了,但是为什么当我点击菜单的某个链接时keuangan没有出现?

 function index()
{
    $data['title'] = 'QB Cash Advance Settlement';
    $this->load->view('menu',$data);
    $this->load->view('v/vcas');
}

这是c_menu控制器

function index()
{
    $data['title'] = "QB Dashboard";
    $data['jabatan'] = "Keuangan";
    $this->load->view('menu',$data);
    $this->load->view('body');
}

这是menu_view

<div id ="user">Selamat datang, <?php echo $jabatan; ?></div>

登录控制器

function login()
{   
    $username = $this->input->post('username');
    $jabatan = $this->input->post('jabatan');
    $this->form_validation->set_rules('username','Username','alpha_numeric|trim|required|xss_clean');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');

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

         if($jabatan == 'keuangan')
         {
                 redirect('c_menu','refresh');
         }
         else if ($jabatan == 'hd')
         {
             echo $jabatan;
         }
         else
         {
             echo $jabatan;
         }
 }

我是否需要在每个控制器/索引中声明$data['title'] = 'keuangan'

1 个答案:

答案 0 :(得分:1)

您绑定到视图中的数据将不会保留。因此,当您第一次加载菜单时,它就在那里,因为您在控制器中设置了它:

$data['jabatan'] = "Keuangan";
$this->load->view('menu',$data);

但是当你点击链接时,它会转到另一个控制器。

$data['title'] = 'QB Cash Advance Settlement';
$this->load->view('menu',$data);
在将$data['jabatan']绑定到视图之前,未在此控制器中设置

$data,因此这是未定义的原因。