douou9094747 2013-03-12 17:54
浏览 46
已采纳

如何在表单验证失败后重新填充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>

hi, i am facing problem in the above code, please help me, set_value is not working for me, dropdown is not populating after form validation fails , thanks in advance or

does something like this works, here target is hidden value. now how to set target value to drop down value(option value)

  <script>
    window.onload = function (){
    target=document.getElementById('target').value;
        if(target.length!=''){
   // document.getElementByName('state').value=target;
        }
    }
    </script>
  • 写回答

7条回答 默认 最新

  • douningzhi1991 2013-03-13 01:36
    关注

    According to the manual:

    <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>
    

    In your case

    <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>
    

    [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>
    

    Just remove TRUE from set_select if you don't want to set a default value

    If you use a menu, this function permits you to display the menu item that was selected. The first parameter must contain the name of the select menu, the second parameter must contain the value of each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)