Php Codeigniter控制器防止表单验证时重新加载整个页面

Php Codeigniter控制器防止表单验证时重新加载整个页面,php,codeigniter,Php,Codeigniter,基本上,我有一个控制器函数,用于在我的案例中添加一个页面,但让我们重点关注该函数: public function add() { $this->session->unset_userdata('postID'); if ($this->form_validation->run() == TRUE) { // Form Validation } $this->data['subview'] = 'blah blah'; $this-&g

基本上,我有一个控制器函数,用于在我的案例中添加一个页面,但让我们重点关注该函数:

public function add() {
  $this->session->unset_userdata('postID');

  if ($this->form_validation->run() == TRUE) {
    // Form Validation
  }
  $this->data['subview'] = 'blah blah';
  $this->load->view('blah blah.php', $this->data);
} 
基本上,当表单被提交时,在这种情况下它仍然会取消设置postID,但是我想确保如果表单被提交并且有错误,那么它将丢失,并且不会重做我的一些函数和变量。在提交表单时,我的很多内容都会发生这种情况,它会重新启动我希望忽略的变量

我还尝试了以下方法,但也不起作用:

if (!$this->form_validation->run()) {
  $this->session->unset_userdata('postID');
} 
当表单重新执行所有页面加载内容时,如何避免在进行验证时重做整个页面


谢谢

您可以检查是否使用

if($this->input->post('the-name-of-the-submit-button')) {
    $this->session->unset_userdata('postID');
}

基本上,
$this->form\u validation->run()


或者,您可以填写字段值,使其不会“重置”,即
,但这与相同$这个->表单验证->运行()不是吗?不,运行()实际上验证了验证规则。以上只是检查表单是否实际提交或页面是否刚刚加载。我知道,我现在正在工作,我会很快尝试,我会确保它是否有效,让您知道并检查答案勾选xD谢谢没问题。如果您在一个页面上有两个表单(例如,并排登录和注册表单),此技术也很有用。使用此技术,您可以轻松地检查提交了哪些表单,并相应地设置验证规则。将表单验证保留在显示表单的相同功能中更简单。这是打算使用CI表单验证的方式。否则,你需要在表单提交失败时重定向,但会丢失验证错误。我不介意页面刷新,因为我的自动更新功能已经在使用AJAX,但我希望论坛提交时的页面刷新忽略表单验证之外的页面功能。