我的应用程序中有一个带有多选的表单。我正在使用CI的表单助手来构建我的表单,因此元素的构建如下所示:
return form_multiselect('authors[response][]', $faculty->get_all_for_multiselect(),
$pre_selected, $additional_attributes);
如果项目在数据库中($ pre_selected获取现有响应),这一切都很好。但是,我也通过CI的表单验证运行表单,当发生这种情况时,如果验证失败,则多选择会丢失已选择的值。
我确信这很简单,我只是在看,所以希望有人可以帮助我。
添加更多信息
该字段被标记为必需,因此它将通过验证器(尽管它将始终通过,因为我自动选择当前用户)。
答案 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);