3

我有一个包含 8 个输入字段的表单。现在,如果数据库中的字段为空,我不想更新它。

这是我喜欢检查的字段。如果为空,请不要更新它们并保留原始值。这个怎么做?

这是我在控制器中的功能

function update_profile(){

    $data = array(
            'name' => $this->input->post('name'),
            'email' => $this->input->post('email'),
            'telefoon' => $this->input->post('telefoon'),
            'gsm' => $this->input->post('gsm'),
            'facebook' => $this->input->post('facebook'),
            'twitter' => $this->input->post('twitter'),
            'portfolio' => $this->input->post('portfolio'),
            'profilefoto' => $this->input->post('browse')
            );
    $this->kdg_model->update_profile($data);
}

我的模型

function update_profile($data) {
    $session_id = $this->session->userdata('user');
    $this->db->where('user', $session_id);
    $this->db->update('user', $data);
}
4

2 回答 2

4

只需从您的主字段中删除该字段array并以不同的方式检查它。

假设这是您的$data数组:

$data = array(
    'naam' => $this->input->post('naam'),
    'email' => $this->input->post('email'),
    'telefoon' => $this->input->post('telefoon'),
    'gsm' => $this->input->post('gsm'),
    'facebook' => $this->input->post('facebook'),
    'twitter' => $this->input->post('twitter'),
    'portfolio' => $this->input->post('portfolio'),
    'profielfoto' => $this->input->post('browse')
); 

关于not_update_if_blank,您需要做的就是在$data数组之后检查它:

if( $this->input->post('not_update_if_blank') != "" )
{
    $data['not_update_if_blank'] = $this->input->post('not_update_if_blank');
}

现在你可以传递$data给你的模型了。

编辑:

$post_array = $this->input->post();
foreach( $post_array as $key=>$value )
{
    if(trim($value)!= "")
    {
       $data[$key] = $value;
    }
}

现在传递$data给您的模型。
注意:测试代码,因为我还没有测试过!

于 2013-08-19T14:05:18.393 回答
0

首先,我附近最好的解决方案是验证表单,但如果您仍想避免验证,则不要这样做:它是最简单的方法,不好但最简单:

例如

if($name!='' && $email!='' && $facebook!='') //place all your Post variables here same like these 3 variables.
{

//Perform your Updation process here.

}
于 2013-08-19T15:21:28.537 回答