使用url helper更新记录codeigniter

时间:2013-08-13 12:03:42

标签: php codeigniter updates

我正在尝试更新一个表格,其中输入了行的ID并通过下拉列表选择了标题,但我有两个问题。首先我不知道如何将数据传递给模型,第二个问题实际上是使用活动记录更新表。

控制器类

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); 

            }

        }

模型类

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

视图

<?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(); ?>

和打开网址时

/站点/简档/ edit_profile / 1

我收到此消息

致命错误:在非对象

上调用成员函数upddata()

1 个答案:

答案 0 :(得分:0)

尝试在控制器中加载模型,如

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

可选,如

function uppdata($data) {

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

$data也可以直接获取相关值。您需要将$data传递给视图文件而不是$data1,因为它未定义且

替换

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

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