如果有人可以提供帮助,我会有一个问题,我会非常感激。
<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"
}
答案 0 :(得分: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);
}
答案 1 :(得分: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);
}