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

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

你好,我在上面的代码中遇到了问题,请帮助我, set_value 对我不起作用,表单验证失败后下拉列表未填充,在此先感谢 或

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

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

最佳答案

根据手册:

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

在你的情况下

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

[更新]

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

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

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

关于php - 表单验证失败后如何在 codeigniter 中重新填充下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368561/

相关文章:

php - fatal error : Cannot use assign-op operators with overloaded objects nor string offsets

php - 尝试从命名空间 symfony Controller 调用函数

php - Codeigniter - .htaccess 给出 404 页面未找到(文件位于子文件夹中)

codeigniter - 用于 codeigniter 的 Paypal API

php - 与 ci_sessions 表相关的 MySQL 性能缓慢

php - 如何遍历数组以插入数据库

php - Apache 2 + PHP 5 : how to redirect an user to another domain

php - Analytics Core Reporting API 突然与仪表板数据大不相同

php - 尽管在 mysql 数据库中可用,但 Codeigniter 未获取数据

php - 如何使用 codeigniter 中的左连接 Activity 记录显示来自两个不同表的字段?