CodeIgniter使用If语句显示不同的菜单

时间:2019-04-01 12:42:34

标签: php html codeigniter if-statement

当我尝试获取表示未定义的值时,该变量存在错误虽然我已经存储了变量“ $ level”的会话并将其发送到视图,但是变量的条件变为未定义,代码有什么问题吗?

我得到的变量来自登录名。我也曾尝试调用$ level,它可以工作

我尝试使用foreach和non foreach方法,但这些方法都不起作用

View.php

<?php if($level->level == '1') ?>
<p>Number 1</p>
<?php if($level->level == '2') ?>
<p>Number 2</p>

admin.php

function index(){       
$level = $this->session->userdata('level');
$this->load->view('view',$level);
}

Login.php

public function do_login()
    {
        $u = $this->input->post("user");
        $p = md5($this->input->post("pass"));

        $cari = $this->model_pesawat->cek_login($u, $p)->row();
        $hitung = $this->model_pesawat->cek_login($u, $p)->num_rows();

        if ($hitung > 0) {

        $data = array('admin_id' => $cari->no_user ,
                            'admin_user' => $cari->username, 
                            'admin_nama' => $cari->nama,
                            'level' => $cari->level,
                            'admin_valid' => TRUE
            );

            $this->session->set_userdata($data);
            redirect('admin','refresh');
        }else{
            echo "maaf username atau password salah";
        }   
    }

我希望结果if语句将根据用户的$ level在视图中显示不同的值

3 个答案:

答案 0 :(得分:0)

您需要将数组传递给CodeIginter视图。

并且数组的键将用作视图中的单个元素。

类似于extract()函数。

因此,您应该传递$data并将$level添加到其中。

$data['level'] = $level;
$this->load->view('view', $data);

在您看来,您可以像$level一样从Controller访问$level

无需照顾$data

答案 1 :(得分:0)

在视图中,您可以直接使用会话变量,无需从控制器传递

<p>Number 1</p>
<?php if($this->session->userdata('level') == '2') ?>
<p>Number 2</p>

答案 2 :(得分:0)

您应该检查会话中的数据,无论是否要存储。

    echo "<pre>"; print_r($this->session->userdata());