3

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

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

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

我敢肯定,这很简单,我只是在看,所以希望有人可以在这里帮助我。

添加更多信息

该字段被标记为必填,因此它正在通过验证器(尽管它总是会通过,因为我会自动选择当前用户)。

4

1 回答 1

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);
于 2013-07-25T04:49:58.430 回答