代码点火器重新填充表单数据并使用重定向单独获取验证错误



我正在将表单加载到我的添加控制器的索引操作上,并将该表单发布到同一控制器submit_post操作。我想要的是,如果发布数据不满足验证,那么它应该重定向到索引操作,仅呈现我的表单并保持表单字段填充已发布的值,而且我将能够单独获得每个字段错误这里是我的控制器操作

class Add extends CI_Controller {
    private $view = "";
    public function __construct()
    {
        parent::__construct();
        $this->view = "add";
    }
    public function index()
    {
      $this->load->view("frontend/default", array("view" => $this->view));
    }
    public function submit_post()
    {
         $this->form_validation->set_rules('description', 'Description', 'required');
         $this->form_validation->set_rules('name', 'Name', 'required');
         if ($this->form_validation->run() == FALSE)
         {
              redirect('/add');
         }
         else
         {
             echo "Validated";
         }
    }
}

我读过很多博客和堆栈溢出问题,发现这可以通过set_flashdata来实现。好吧,我做到了,并且能够完全打印所有错误。

问题是由于行redirect('/add'); 使用重定向,验证类将被重新加载,并且在form_validation->run()期间收集的所有信息都将丢失。

这是我建议的代码

     if ($this->form_validation->run() == FALSE)
     {
          $this->index();
     }
     else
     {
         echo "Validated";
     }
你应该在你的

配置文件中form_validation$autoload['libraries'] = array('form_validation')。然后,如果您想单独显示错误,则应将其放在每个输入字段下的html中:

    <?php echo form_error('your fieldname');?>

相关内容

最新更新