0

このようなログインフォームがあります

ここに画像の説明を入力

アプリケーションにログインすると、このようなメニューが表示されます ここに画像の説明を入力

いくつかのメニューをクリックするまではうまくいきましたが、それが表示されます ここに画像の説明を入力

これは、私がクリックしたリンクのコントローラーです。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'すべてのコントローラー/インデックスで宣言する必要がありますか?

4

1 に答える 1

1

ビューにバインドしたデータは保持されません。ここでコントローラーに設定したため、最初にメニューをロードしたときにそこにあります。

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

ただし、リンクをクリックすると、別のコントローラーに移動します。

$data['title'] = 'QB Cash Advance Settlement';
$this->load->view('menu',$data);

$data['jabatan']ビューにバインドする前にこのコントローラーで設定されていない$dataため、未定義です。

于 2012-10-25T03:29:44.723 に答える