0

行の ID が入力され、ドロップダウン リストからタイトルが選択されているテーブルを更新しようとしていますが、2 つの問題があります。まず、データをモデルに渡す方法がわかりません.2番目の問題は、アクティブレコードを使用して実際にテーブルを更新することです。

コントローラ クラス

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

そしてURLを開くと

/site/profile/edit_profile/1

私はこのメッセージを受け取ります

致命的なエラー: 非オブジェクトでのメンバ関数 upddata() の呼び出し

4

1 に答える 1

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);
于 2013-08-13T12:04:39.863 に答える