我有一个 Ajax 表单,正在将数据提交到我的 MySQL 数据库中。
我有 select2 框,允许用户选择多个选项。
以下是一个盒子的 HTLM 代码示例:
<select class="select3 form-control select2-multiple track" name="sellingmethods" id ="sellingmethods" multiple="multiple" multiple data-placeholder="Choose ...">
<option value="Telesales">Telesales</option>
<option value="Party Planning">Party Planning</option>
<option value="Door to Door">Door to Door</option>
<option value="Face to Face">Face to Face</option>
<option value="Online Demos">Online Demos</option>
<option value="Affiliate Link">Affiliate Link</option>
<option value="Appointment Setting">Appointment Setting</option>
</select>
当我单击“提交”时,它会传递如下数据:
正如您所看到的,它多次发布相同的盒子 ID,例如在销售方法中看到的示例。
目前,我将其放入数据库的 PHP 代码仅将最后一项放入数据库。
有没有办法将多个选择用逗号分隔?例如“挨家挨户,电话销售”。
这是我当前的 PHP 代码:
'sellingmethods' => implode(',', $this->input->post('sellingmethods')),
'sellertype' => implode(',', $this->input->post('sellertype')),
'want2sell' => implode(',', $this->input->post('want2sell')),
'productssold' => implode(',', $this->input->post('productssold')),
'industriesrepresented' => implode(',', $this->input->post('industriesrepresented')),
当前给我的错误:
implode():传递的参数无效
最佳答案
要访问通过 select multiple 作为数组提交的多个选项,您需要将 name 属性设置为数组,例如 sellingmethods[]
例如:
<select class="select3 form-control select2-multiple track" name="sellingmethods[]" id ="sellingmethods" multiple="multiple" multiple data-placeholder="Choose ...">
<option value="Telesales">Telesales</option>
<option value="Party Planning">Party Planning</option>
<option value="Door to Door">Door to Door</option>
<option value="Face to Face">Face to Face</option>
<option value="Online Demos">Online Demos</option>
<option value="Affiliate Link">Affiliate Link</option>
<option value="Appointment Setting">Appointment Setting</option>
</select>
然后 $this->input->post(' sellmethods')
或 $_POST[' sellmethods']
将如预期那样是一个数组,并且您不应该implode() 函数不再出现错误。
关于php - 通过 Ajax 提交表单,将多个选择插入到数据库中以逗号分隔的一行中,但会崩溃并给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48696541/