Codeigniter 中的“多选”框返回字符串而不是值数组


Multiple Select box in Codeigniter returning string instead of array of values

我得到了一个奇怪的行为。

在Codeigniter的视图中,我有以下代码:

<?php echo form_multiselect('post-categories', $active_categories, (!empty($selected_categories))?$selected_categories:null,array('class'=>'form-control')); ?>

生成以下 HTML

<select name="post-categories" class="form-control" multiple="multiple">
<option value="1">Beauty</option>
<option value="4">More</option>
<option value="3">New</option>
</select>

但是,当我提交选择了多个类别的表单时,我只收到字符串。

在控制器中

var_dump($this->input->post('post-categories'));

将输出

string(1) "3"

我做错了什么或遗漏了什么吗?

name应该是post-categories[](数组语法)。尝试-

form_multiselect('post-categories[]', $active_categories, (!empty($selected_categories))?$selected_categories:null,array('class'=>'form-control'));