作为数组存储在数据库中的值在更新时将新值添加到同一数组时被删除



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

<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
}

数据库中的值不稳定 我用了很多想法,但没有到达目的地。希望您的帮助请帮助我

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

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

$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)应更新团队成员,而假块应创建一个新团队。是否已验证$team_id是否已成功设置?

我不确定团队信息的结构,但与其在真正的块中使用=直接分配,不如使用+=或手动组合新旧数据并在之后执行任务。

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

最新更新