2016-04-28 13 views
1

テーブルの同じ行の複数の列にプレーヤーのリストを挿入しようとしています。これらのプレーヤーは、位置によってグループ化されたので、彼らは私が取得し、私はまた、選択したオプションの数を制限するためにJavaScriptを使用していると(単一のSQLに挿入したい、自分の選択フォームを持っている。CI - Help複数の選択されたオプションを持つ複数のSelectフォームを挿入する

Table: contests_rosters 
id, player1, player2, player3, player4 

player1 and player2 will be from select name "forwards[]" 
player3 and player4 will be from select name "defenders[]" 

は問題がありますコントローラのポストを呼び出すと、複数の挿入の代わりに1つの挿入を行うことができるように配列を操作する方法がわかりません。

私を助けてください。投稿の返信は、私が理解することができるように操作手順を説明し、それは非常に高く評価される、それは非常に高く評価されるでしょう。

VIEWは - オプションを多くの試行錯誤の後、AJAX

Select Forward 
<br/><br/> 
<fieldset> 
    <select name="search_forward" id="players_forwards" multiple size="25" style="width:500px"> 
    </select> 

    <a href="JavaScript:void(0);" id="btn-add_forward">Add &raquo;</a> 
    <a href="JavaScript:void(0);" id="btn-remove_forward">&laquo; Remove</a> 

    <select name="forwards[]" id="players_forwards_selected" multiple size="2" style="width:500px"> 
    </select> 

</fieldset> 
<br /><br /> 

Select Defender 
<br/><br/> 
<fieldset> 
    <select name="search_defender" id="players_defenders" multiple size="25" style="width:500px"> 
    </select> 

    <a href="JavaScript:void(0);" id="btn-add_defender">Add &raquo;</a> 
    <a href="JavaScript:void(0);" id="btn-remove_defender">&laquo; Remove</a> 

    <select name="defenders[]" id="players_defenders_selected" multiple size="3" style="width:500px"> 
    </select> 

</fieldset> 
<br /><br /> 

コントローラ

$data1 = $this->input->post('forwards'); 
$data2 = $this->input->post('defenders'); 

.....manipulation, then insert into table 

答えて

0

によって取得され、私は次の解決策を見つけることができました。最もクリーンなソリューションであるかどうかは分かりませんが、機能します。あなたの考えを聞いてうれしいです。

コントローラ

$forwards_post = $this->input->post('forwards'); 
$defenders_post = $this->input->post('defenders'); 

$forwards = array(
      'player1'  =>  $forwards_post[0], 
      'player2'  =>  $forwards_post[1] 
     ); 

$defenders = array(
      'player3'  =>  $defenders_post[0], 
      'player4'  =>  $defenders_post[1] 
     ); 

$data_entry = array_merge($forwards, $defenders); 

アレイは今モデル

$this->input('contests_rosters', $data_entry); 

出来上がりにおける単一挿入の準備ができています。

関連する問題