[英]Repopulate Select Multiple in For loop after validation
So basically I have been having alot of trouble repopulating my select box during form my form validation check. 因此,基本上,在表单验证检查期间重新填充选择框时,我一直遇到很多麻烦。 Below I have put an example of my output, controller, and view. 下面,我给出了输出,控制器和视图的示例。 Could someone please help me figure this out. 有人可以帮我解决这个问题。 Thank you in advance. 先感谢您。
I have multi tag that looks like this: 我有多个标签,如下所示:
<select name="names[]" multiple>
<option value="1">John Doe</option>
<option value="2">Michael Scott</option>
<option value="3">Luke Skywalker</option>
<option value="4">Princess Arial</option>
</select>
My Controller validation check: 我的控制器验证检查:
$this->form_validation->set_rules('name', 'Name', 'required');
if ($this->form_validation->run() == FALSE){
$this->reload_form_view();
}
My View: 我的观点:
<select name="names[]" multiple>
<?php
foreach ($users as $user) {
$id = intval($user->id, 10);
$value = set_value('names[]', $id);
$name = $user->full_name;
echo '<option value="'.$value.'">'. $name .'</option>';
}
?>
</select>
When it comes back false I want to repopulate the selected options with options previously selected. 当返回假时,我想用先前选择的选项重新填充选择的选项。 I am also populating the select box with users from the database. 我还用数据库中的用户填充选择框。
Could some please help me on what I am doing wrong, you would help me so much. 有人能帮助我解决我做错的事情吗,您会帮助我很多。 THANK YOU IN ADVANCE!!!!! 先感谢您!!!!! :) :)
You can give it a try: 您可以尝试一下:
foreach ($users as $user) {
$id = intval($user->id, 10);
$value = set_value('names[]', $id);
$name = $user->full_name;
echo '<option value="'.$id.'" '. set_select("names", $id ) .'>'. $name .'</option>';
}
This is by using the set_select
function provided by form helper
of CI
, you must load the form helper before using it. 这是通过使用CI
的form helper
提供的set_select
函数,您必须在使用之前加载表单助手。
You can just add a check: 您可以添加支票:
echo '<option value="'.$value.'" '.(in_array($user->id,$this->input->post("names")) ? 'selected':'').'>'. $name .'</option>';
I haven't checked if in_array()
works on multiple selects, but its about the idea. 我没有检查in_array()
可以在多个选择上使用,但是关于这个想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.