2017-01-18 11 views
0

ここで私の問題は、データベースに既に格納されている値を更新しようとしていて、新たに追加された値だけが得られていることです。 ここに私のコードはここに私の見解はデータベースに配列として格納されている値が更新中に同じ配列に新しい値を追加中に削除される

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

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

です

データベース内の値は、私は多くのアイデアを使用していたが、destination.hopeあなたの助けに達していなかった安定になってきていない私に

+0

どちらの場合も、メンバーのデータを 'all_active_menu3'から選択されたものに置き換えるストレート割り当てを行っています。ストレート代入ではなく、おそらくそれらの値をその配列に追加する必要があります。 – Seth

+0

yaa私はそれを持っていますが、私は知らないのです –

+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データも読んでいないので少し混乱します。条件!empty($team_id)を満たすifブロック内での割り当ては、チームメンバーを更新する必要があり、falseブロックは新しいチームを作成するはずです。 $team_idが正常に設定されていることを確認しましたか?

私はチームの情報の構造についてのかどうか分からないのではなく、真のブロックに=を使用してまっすぐに割り当てよりも、あなたは+=を使用するか、手動で新しいと古いデータを結合し、その後の割り当てを行うべきです。

array_mergeのようなものを使用するか、または結合したデータを保持する断続的なオブジェクトを作成するためのループをここで使用する必要があります。

+0

私はarray_merge関数を使用していましたが、得られませんでした。$ team_idが正常に設定されました –

+0

どうしたのですか?どのように使ったのですか? DBから読み込んだ実際の構造体と '$ this-> input-> post( 'all_active_menu3')'から得られる構造体は何ですか? – Seth

+0

私は今、時間を過ごしてくれてありがとう... –

関連する問題