我的应用程序中有一个带有多选的表单。我正在使用 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);