在codeigniter中发布后,多选不保留值

时间:2013-01-25 22:33:48

标签: php codeigniter codeigniter-form-helper

我的应用程序中有一个带有多选的表单。我正在使用CI的表单助手来构建我的表单,因此元素的构建如下所示:

return form_multiselect('authors[response][]', $faculty->get_all_for_multiselect(), 
                         $pre_selected, $additional_attributes);

如果项目在数据库中($ pre_selected获取现有响应),这一切都很好。但是,我也通过CI的表单验证运行表单,当发生这种情况时,如果验证失败,则多选择会丢失已选择的值。

我确信这很简单,我只是在看,所以希望有人可以帮助我。

添加更多信息

该字段被标记为必需,因此它将通过验证器(尽管它将始终通过,因为我自动选择当前用户)。

1 个答案:

答案 0 :(得分:1)

(我假设$ pre_selected是一个值数组?)

使用$ _POST数组提交失败的表单后,您可以重置所选的值。

由于您已经使用$ pre_selected,因此您应该可以使用以下内容:

return form_multiselect('authors[response][]', $faculty->get_all_for_multiselect(), 
                         array_unique(array_merge($pre_selected, $_POST['response'])), $additional_attributes);