如何在表单验证失败后重新填充codeigniter中的下拉列表?

use*_*317 2 php codeigniter

<select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
<option value=''>State</option>
 <?php  foreach($states->result() as $row)
 {
 echo "<option value='$row->state_name'>". $row->state_name."</option>";
 }  ?>
</select>
Run Code Online (Sandbox Code Playgroud)

嗨,我在上面的代码中遇到问题,请帮帮我,set_value对我不起作用,在表单验证失败后下拉列表没有填充,提前感谢或者

做这样的事情,这里的目标是隐藏价值.现在如何将目标值设置为下拉值(选项值)

  <script>
    window.onload = function (){
    target=document.getElementById('target').value;
        if(target.length!=''){
   // document.getElementByName('state').value=target;
        }
    }
    </script>
Run Code Online (Sandbox Code Playgroud)

Ste*_*sen 12

根据手册:

<select name="myselect">
        <option value="one" <?php echo  set_select('myselect', 'one', TRUE); ?> >One</option>
        <option value="two" <?php echo  set_select('myselect', 'two'); ?> >Two</option>
        <option value="three" <?php echo  set_select('myselect', 'three'); ?> >Three</option>
</select>
Run Code Online (Sandbox Code Playgroud)

在你的情况下

<select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
<option value=''>State</option>
 <?php  foreach($states->result() as $row)
 {
 echo "<option value='$row->state_name' " . set_select('state', $row->state_name) . " >". $row->state_name."</option>";
 }  ?>

</select>
Run Code Online (Sandbox Code Playgroud)

[UPDATE]

<select style="width:25%;" name='state' <?php if(form_error('state') != '') {  echo 'id=error'; } ?>>
    <option value=''>State</option>
     <?php  
$defaultvalue = 'Nigeria'; //Please set default value here when nothing is selected before submit - change Nigeria
foreach($states->result() as $row)
     {
     echo "<option value='$row->state_name' " . set_select('state', $row->state_name, ((!isset(set_select('state', $row->state_name)) &&  ($row->state_name == $defaultvalue) ) ? TRUE : FALSE )) . " >". $row->state_name."</option>";
     }  ?>


</select>
Run Code Online (Sandbox Code Playgroud)

如果您不想设置默认值,只需从set_select中删除TRUE即可

如果使用菜单,此功能允许您显示所选的菜单项.第一个参数必须包含选择菜单的名称,第二个参数必须包含每个项的值,第三个(可选)参数允许您将项设置为默认值(使用布尔值TRUE/FALSE).