php - CodeIgniter 的 set_value() 没有重新填充

标签 php codeigniter

我检查并重新检查了我的代码,引用了 CI 文档和网络上的其他帖子,但我未能成功实现 set_value() 方法以在验证失败后重新填充表单字段。 也许我遗漏了 CI 框架的一些非常基础的东西(我对它还很陌生),但非常感谢您的见解。

我的 Controller 方法中有以下内容:

public function form_step2(){
    //Form Setup
    $this->load->helper('form');
    $this->load->helper('url');
    $this->load->library('form_validation');
    $data['title'] = $this->base_title;
    $data['base_url'] = base_url();

    //Validation Settings - must be set per step
    $this->form_validation->set_rules('request_type', 'Request Type', 'required');
    *...more of the same set_rules()*


    if ($this->form_validation->run() === FALSE) {
        ### Validation failed or New Form

        // Get form element data
        $data['request_types'] = $this->my_model->get_form_data('request_type');
        *...more of the same get_form_data() calls for loading form elements*

        //Generate Page from View Templates
        $this->load->view('templates/header', $data);
        $this->load->view('templates/form_step2', $data);
        $this->load->view('templates/footer');
    } else {
        ### Save to database
        $this->my_model->set_data($data);

        redirect('my_model/success','refresh');
    }
}

在我看来,没有重新填充的代码片段:

<?php echo form_open('my_model/form_step2', array('class'=>'form-inline')); ?>

<label for="fname">First Name</label>
<input type="text" id="fname" name="fname" value="<?php echo set_value('fname'); ?>" />
<input type="submit" name="submit" value="Submit" />

我想不通,所以在此先感谢您的帮助。

最佳答案

如果您想使用 set_data(),您还需要为该 POST/GET 字段使用 set_rules

由于您已注释掉所有 set_rules,我无法确认这是问题所在,但很可能是。

请检查你的代码中是否有这一行

$this->form_validation->set_rules('fname', 'First name', 'trim|required');

所以如果你想用 name="fname" 重新填充字段,你需要有 set_rules()//as line above 否则它不会'因此 t 进程 set_value('fname') 为空。

关于php - CodeIgniter 的 set_value() 没有重新填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19393477/

相关文章:

codeigniter - IonAuth - 似乎是随机让我退出

php - Mysql - 执行查询花费太多时间

php - 为什么我的 SQL 查询没有返回任何记录?

php - MySQL 中的阿拉伯字符问题

PHP 错误 : The Encrypt library requires the Mcrypt extension in codeigniter

php - 如何在 Rest Server API 中获取/设置 header ?

php - 如何在 foreach 循环内通过 JSON 数组 "loop"?

php - 查询两个表的电子邮件地址,每个只列出一次

php - 什么是codeigniter中的routes.php

arrays - Codeigniter:如何使用 Controller 访问配置文件中的多维数组?