Welcome Guest, Not a member yet? Register   Sign In
Undefined variable
#1

[eluser]obay[/eluser]
Hi guys!

I'm a total noob to MVC and CI. I've managed to create my view, model and controller. But somehow, a variable
Code:
$user_levels
in my controller isn't showing up in my view.

Can somebody take a quick look at my code and point me in the right direction?

Code:
<?php

class User_model extends Model {

    var $name     = '';
    var $email    = '';
    var $password = '';
    var $level    = '';

    function User_model()
    {
            parent::Model();
    }
    
    function create($name, $email, $password, $level)
    {
        $data = array(
            'name'     => $name ,
            'email'    => $email ,
            'password' => $password ,
            'level'    => $level
        );

        $this->db->insert('users', $data);
    }
    
    function get_user_levels()
    {
        $query = $this->db->get('user_levels');
        return $query->result();
    }

}

Code:
<?php

class User extends Controller {

    function User()
    {
        parent::Controller();
        $this->load->model('User_model');
    }
    
    function index()
    {
        $this->load->view('user_browse_view');
    }
    
    function create()
    {
        if (count($_POST)>0) {
            $this->User_model->create(
                $this->input->post('name'),
                $this->input->post('email'),
                $this->input->post('password'),
                $this->input->post('level')
            );
        } else {
            $user_levels = $this->User_model->get_user_levels();
            print_r($user_levels); //this prints out Array ( some values here )
            $this->load->view('user_create_view', $user_levels); //$user_levels don't seem to get passed to the view
            
        }
    }
}
?>

Code:
<html>
<head>
<title>Create User</title>
</head>
<body>

<h1>Create User</h1>

&lt;?=anchor('user', 'Cancel');?&gt;

&lt;?=form_open('user/create');?&gt;
    
<p>Name: &lt;?=form_input('name');?&gt;</p>
<p>Password: &lt;?=form_password('password');?&gt;</p>
<p>Email: &lt;?=form_input('email');?&gt;</p>
<p>User Level: &lt;?=form_dropdown('level',$user_levels);?&gt;</p>
<p>&lt;?=form_submit('submit','Create');?&gt;</p>
    
&lt;?=form_close();?&gt;

&lt;/body&gt;
&lt;/html&gt;

For this line:
Code:
&lt;?=form_dropdown('level',$user_levels);?&gt;

I get two errors:

Code:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: user_levels
Filename: views/user_create_view.php

Code:
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: helpers/form_helper.php
Line Number: 268

Anybody has ideas? Any help would be appreciated!

Thanks!
#2

[eluser]obay[/eluser]
I solved it.

In

&lt;?=form_dropdown('level',$user_levels);?&gt;

it shouldn't be $user_levels, but instead a key inside the $user_levels Smile

Sorry for the inconvenience..
#3

[eluser]jcavard[/eluser]
deleted




Theme © iAndrew 2016 - Forum software by © MyBB