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

时间:2016-04-28 13:34:35

标签: php mysql sql codeigniter

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

    UIPasteboard.generalPasteboard().string = pw
    textField.pressForDuration(1.1)
    app.menuItems["Paste"].tap()

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

你能帮帮我吗? - 另外如果你能告诉我这篇文章的回复是什么,并解释操作步骤以便我理解,那将非常感激。

查看 - 选项由ajax

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

控制器

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

1 个答案:

答案 0 :(得分: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);

瞧。