2014-04-01 49 views
1

当前,编辑配置文件适用于我。但是,我的问题是,只有一个元素被成功编辑。我可以回显以前保存的数据,我甚至可以键入和编辑每个文本框。问题是,只有在“配置文件”字段上进行的修改才能得到适当的反映。所有其他领域保持不变。在Codeigniter中编辑多个字段

这里是我到目前为止有: 在控制器页:

public function edit_profile() 
{ 
    //loads client profile and allows editing to be done 
    $this->validateRole('client'); 
    $this->load->model('job_model'); 

    $id = $this->auth_model->get_user_id(); 

    $data['client'] = $this->auth_model->get_client($id); 
    $this->load->view('client/edit_profile', $data); 
} 
public function edit_profile_submit() 
{ 
    $this->validateRole('client'); 
    $this->load->model('auth_model'); 
    //$this->auth_model->edit_client_profile($this->auth_model->get_user_id(), $_POST['tagline']);  
    $this->auth_model->edit_client_profile($this->auth_model->get_user_id(), $_POST['profile']); 
    //$this->auth_model->edit_client_profile($this->auth_model->get_user_id(), $_POST['billing_mode']); 
    redirect('client/view_profile?message=Profile updated.'); 

} 

模型页:

public function edit_client_profile($id, $profile) 
{ 
    // allows client to edit his or her profile 
    $data = array(
     //'tagline' => $tagline, 
     'profile' => $profile 
     //'billing_mode' => $billing_mode 
    ); 
    $this->db->where('id', $id); 
    $this->db->update('client', $data); 
} 

我试图编辑我的控制器和模型页面,让我评论了只得到错误现在改为添加行。 我期待着任何可能的帮助。

谢谢!

+0

不要分别调用edit_client_profile三次。在您的控制器中创建一个包含键值'tagline','profile'和'billing_mode'的数组。然后将所有数据发送到您的edit_client_profile函数。 – Dan

回答

0

错误可能是因为每次调用模型时,您的$ data数组中都有两个未定义的变量。相反,在你的模型创建阵列的,在你的控制器创建它:

$data = array(
    'tagline' => $_POST['tagline'], 
    'profile' => $_POST['profile'], 
    'billing_mode' => $_POST['billing_mode'] 
); 

然后调用模型

$this->auth_model->edit_client_profile($this->auth_model->get_user_id(), $data); 

从模型中取出数组创建,更改第二个参数传递给$data

public function edit_client_profile($id, $data) 
{ 
    $this->db->where('id', $id); 
    $this->db->update('client', $data); 
} 
+0

非常感谢!我知道了!它正在工作!非常感谢!但唯一的问题是计费模式(应该从下拉菜单中选择)现在不反映任何内容。如果您也可以帮助我,那么我将不胜感激。但是我也会尝试我的运气。再次感谢。祝你有美好的一天! ;) – user3453256

+0

最好的办法是在下拉列表http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html查看codeigniter文档。很高兴帮助...如果问题得到解决,请接受答案 – Dan

+0

确实如此。再次感谢你的帮助!祝你有美好的一天,丹尼尔!:) – user3453256