Php 验证后重新填充选择多个For循环
因此,基本上,在表单验证检查期间,我在重新填充选择框时遇到了很多麻烦。下面我给出了一个输出、控制器和视图的示例。有人能帮我弄清楚吗。先谢谢你 我有多个标签,看起来像这样:Php 验证后重新填充选择多个For循环,php,codeigniter,validation,Php,Codeigniter,Validation,因此,基本上,在表单验证检查期间,我在重新填充选择框时遇到了很多麻烦。下面我给出了一个输出、控制器和视图的示例。有人能帮我弄清楚吗。先谢谢你 我有多个标签,看起来像这样: <select name="names[]" multiple> <option value="1">John Doe</option> <option value="2">Michael Scott</option&
<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>
我的看法是:
<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>
当它返回false时,我想用以前选择的选项重新填充所选的选项。我还使用数据库中的用户填充选择框
我做错了什么,请你帮我一下,你会帮我很多的。提前谢谢你!!!!!:)您只需添加一张支票:
echo '<option value="'.$value.'" '.(in_array($user->id,$this->input->post("names")) ? 'selected':'').'>'. $name .'</option>';
echo“”$名字;
我还没有检查in_array()
是否适用于多个选择,但这与想法有关。您可以尝试一下:
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>';
}
foreach($users作为$user){
$id=intval($user->id,10);
$value=set_值('names[]',$id);
$name=$user->full_name;
回显“.$name.”;
}
这是通过使用
CI
的form helper
提供的set\u select
功能,您必须在使用表单helper之前加载它 应为:echo“”$名字代码>你的方法应该有效。谢谢你的评论!不过,您的方法更好:)
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>';
}