我正在建立一个水果店网站。
目前,我想问我的顾客他们喜欢什么样的水果。
因此,我为它们创建了几个复选框选项。
<form action='customer_favorite' method='POST'>
<input type='checkbox' name='chk[]' value='banana' />
<input type='checkbox' name='chk[]' value='mango' />
<input type='checkbox' name='chk[]' value='apple' />
<input type='checkbox' name='chk[]' value='orange' />
<input type='checkbox' name='chk[]' value='kiwi' />
<input type='submit' value='submit' />
我不知道他们会选中多少个复选框。
当它发布到我的服务器上时,我想得到这样的结果。
apple, orange, kiwi
第二个顾客会选择其中的四个。
banana, mango, apple, orange
我会像这样把这些数据放进我的数据库。
$data = array(
'fav_fruits' = $this->input->post('chk')
);
$this->db->insert('customer', $data)
问题是我不能得到这样的结果"苹果,桔子,奇异果"。
- 我们不知道会有多少复选框值
- 我想数组值,如"苹果,桔子,奇异果"
如果您想要DB中的明文值(未规范化),可以这样做:
$data = array(
'fav_fruits' = json_encode($this->input->post('chk'))
);
$this->db->insert('customer', $data)
编辑:由于@Madmartigan评论
implode()
更改为json_encode
您将在带有复选框名称的数组中获得结果。在这种情况下,您将在$_POST数组中获得chk[0]=>、chk[1]=>等。
之后,如果你必须像香蕉、芒果、苹果、橙子一样储存它,那么,使用","分隔符对该数组进行内爆。。
implode(',' $_POST['chk'])