kam mal
kam mal

Reputation: 89

Updating records codeigniter by using url helper

I am trying to update a table where id of the row is entered and title is selected through a dropdown list, but I have two problems. Firstly Im not sure how to pass the data to the model, and the second problem is actually updating the table using active record.

controller class

function edit_profile($id) 
        {   
            $data = array(
                'table_name' => 'user',
                'id' => $id ,
                'fullname' => $this->input->post('fullname')
            );

            if($this->user_model->upddata($data))
            {
                $data['msg']= 'Update Done';
                $this->load->view('header_view',$data);
                $this->load->view("edit_profile_view.php", $data);
                $this->load->view('sidbar_user_view',$data);
                $this->load->view('footer_view',$data); 
            }
            else
            {
                $data['msg']= 'Update Not Done';
                $this->load->view('header_view',$data);
                $this->load->view("edit_profile_view.php", $data);
                $this->load->view('sidbar_user_view',$data);
                $this->load->view('footer_view',$data); 

            }

        }

model class

        function upddata($data) {
        extract($data);
        $this->db->where('id', $id);
        $this->db->update($table_name, array('fullname' => $fullname));
        return true;
}

view

<?php echo form_open("profile/edit_profile/$d->id"); ?>
            <div class="tuple">
                <h1>full name : </h1>
                <input type="text" name="fullname" class="t-name" readonly value="<?=fullname; ?>" >
                <div class="clear"></div>
            </div>

            <input type="submit" name="mysubmit" value="Save" id="mysubmit">
        <?php echo form_close(); ?>

and when open url

/site/profile/edit_profile/1

i get this message

Fatal error: Call to a member function upddata() on a non-object

Upvotes: 0

Views: 424

Answers (1)

GautamD31
GautamD31

Reputation: 28753

Try to load your model in controller like

function edit_profile($id) {
    $this->load->model('user_model');
    //Do other things
}

And it is optional like

function uppdata($data) {

    $this->db->where('id', $data['id']);
    $this->db->update($data['table_name'], array('fullname' => $data['fullname']));
    return true;
}

From $data also you can directly get the relavent values.ANd you need to pass $data to the view file not the $data1 because it is un-defined and

Replace

 $this->load->view("edit_profile_view.php", $data);

to

 $this->load->view("edit_profile_view", $data);

Upvotes: 0

Related Questions