CI-帮助插入多选表单,每个表单都有多选选项


CI - Help Inserting Multiple Select Form with each having Multiple Selected Options

我正试图将玩家列表插入表的同一行的多列中。这些玩家按位置分组,因此他们有自己的Select Form,我希望检索并插入到单个SQL中(我还使用javascript来限制所选选项的数量。

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[]"

问题是,当我在控制器中调用post时,我不知道如何操作数组,以便可以进行一次插入而不是多次插入。

你能帮帮我吗此外,如果你能向我展示帖子的回报,并解释操作步骤,让我理解,我将不胜感激。

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

经过多次尝试和错误,我找到了以下解决方案。不确定这是否是最干净的解决方案,但它有效。很高兴听到你的想法。

控制器

$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);

沃伊拉。

相关文章: