1

如果有人可以提供帮助,我将不胜感激。

<input type="checkbox" name="symbols[]" value="1" />
.... and this line repeats 10-15 times with a different value

模型

$data = array(
array('symbol_id' => $this->input->post('symbols'))
);
return $this->db->insert_batch('symbols', $data);

现在我的问题是只插入所选复选框的第一个值(在本例中为 1)并忽略其他所有内容而不插入新的其他复选框行(如值 3、5 和 9)。你能给我一些选择吗?

注意:我想要实现的是为每个复选框插入一个新行,这样我就可以加入另一个包含符号图像的表(表示图像 ID 的复选框的值)。如果您有任何其他方法可以解决我的问题,我们非常欢迎。谢谢

编辑:这是 var_dump:

array(7)

{

[0] => string(1) "8"

[1] => string(1) "9"

[2] => string(2) "10"

[3] => string(2) "11"

[4] => string(2) "12"

[5] => string(2) "13"

}
4

2 回答 2

1

数据作为活动值数组发送,因此如果您检查 1、3、5、10、20,在您的$this->input->post('symbols');数组中,您将拥有array(1, 3, 5, 10, 20)

function InsertSymbols() {
    $data = array();
    foreach($this->input->post('symbols') as $symb) {
        $data[] = array('symbol_id' => $symb);
    }
    return $this->db->insert_batch('symbols', $data);
}
于 2012-12-10T13:26:32.273 回答
0

此代码适用于 CI,但您可以在核心中使用它,也可以在 foreach 中使用插入查询。

$symbol_arr = $this->db->escape_str($this->input->post('symbols'));
foreach ($symbol_arr as $k=> $val) {
        $DataARR = array( 
               "symbol" => $val,
                "created" => date('Y-m-d h:i:s A'),
        );
    $this->common_model->insert_batch($DataARR);
}
于 2019-07-04T07:20:21.533 回答