多选在代码点火器中发布后不会保留值



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

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

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

我敢肯定,这是我只是过分寻找的简单事情,所以希望有人可以在这里帮助我。

添加更多信息

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

(我假设$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);

最新更新