数据库中存储的值被删除,同时在更新

时间:2017-01-18 06:19:25

标签: php arrays codeigniter array-push

这里我的问题是当我去更新已经存储在数据库中的值被删除时,只有新添加的值才会被删除 这是我的代码

<script>
    $(document).ready(function() {
        if(destId=='bar3' || sourceId=='bar3') {
            var itemvalue2 =Array();
            $('ul#bar3 li').each(function() {
                itemvalue2.push($(this).attr("value"));
            });
            document.getElementById("bar3-output").value=itemvalue2;
        }
    });
</script>

这是我的观点

<ul id="bar3"  class="block__list block__list_tags">
    <input type="hidden" id="bar3-output" name="all_active_menu3" class="form-control" 
    value="<?php if(!empty($team_info->members)) {
        $tagsArray = explode(',', $team_info->members);
        $tagsLinksArray = array();
        foreach($tagsArray as $tag) {
            $tagName = trim($tag);
            $tagsLinksArray[]=$tagName;
        }
        $tagsLinks = implode(',', $tagsLinksArray);
        echo $tagsLinks;}?>
    ">
</ul>

这是我的控件

public function save_team($team_id = NULL)
{
    $profile_data=$this->Teams_model->array_from_post(array('team_name'));
    $this->Teams_model->_table_name = 'tbl_teams'; // table name
    $this->Teams_model->_primary_key = 'team_id'; // $id
    if (!empty($team_id)) {
        $profile_data['members']=$this->input->post('all_active_menu3');
        $this->Teams_model->save($profile_data, $team_id);
    } else {
        $profile_data['members']=$this->input->post('all_active_menu3');
        $this->Teams_model->save($profile_data);
    }

    if (!empty($team_id)) {
        $message = ('Team Info Updated');
    } else {
        $message = ('Team Info Saved');
    }
    $type = 'success';
    set_message($type, $message);
    redirect('admin/team/team_list'); //redirect page
}

数据库中的值没有变得稳定我曾经使用过很多想法但没有达到目的地。请帮助我帮助我

1 个答案:

答案 0 :(得分:1)

我不确定你的代码是如何工作的,但这是我的猜测和出了什么问题:你只是在两种情况下都替换旧值。

这似乎是相关的代码片段。

$profile_data=$this->Teams_model->array_from_post(array('team_name'));
//...
if (!empty($team_id)) {
    $profile_data['members']=$this->input->post('all_active_menu3');
    $this->Teams_model->save($profile_data, $team_id);
} else {
    $profile_data['members']=$this->input->post('all_active_menu3');
    $this->Teams_model->save($profile_data);
}

$profile_data的第一个作业从现有团队中读取当前团队数据。您的命名有点令人困惑,因为您实际上并没有读取任何POST数据。 if块中满足条件!empty($team_id)的赋值应更新团队成员,false块应创建新团队。您是否确认$team_id已成功设置?

我不确定团队信息的结构,而不是在您应该使用=的真实区块中使用+=进行直接分配,或者手动组合新旧数据并执行之后的任务。

使用array_merge之类的东西或循环创建一个间歇性对象来保存组合数据应该可以在这里工作。