【问题标题】:Codeigniter validation errorsCodeigniter 验证错误
【发布时间】:2013-02-19 17:05:11
【问题描述】:

我有一个使用 codeigniter 开发的网站。 我想验证表单并显示一些消息。 使用我的代码,如果我的输入“name_it”为空,我看不到任何错误。为什么? 这是我的控制器:

public function nation_create()
    {
        if($_POST)
        {
            //salvo i dati
            $this->load->library('form_validation');
            $this->form_validation->set_error_delimiters('<p class="error">Errore: ', '</p>');
            $this->form_validation->set_rules('name_it', 'name_it', 'required');
            if ($this->form_validation->run() !== FALSE){
                $this->Nation_model->createNation();
                redirect('backend/nation/nation_list/');
            }
            else{
                $data['errors'] = validation_errors();
                $this->load->view('backend/include/header_view_logged');
                $this->load->view('backend/nation_create_view',$data);  
                $this->load->view('backend/include/footer_view');
            }
        }
        else{
            $this->load->view('backend/include/header_view_logged');
            $this->load->view('backend/nation_create_view');    
            $this->load->view('backend/include/footer_view');
        }
    }

这是我的观点(我剪掉了更多代码以便阅读)

<form action='' method='POST'>
   <?php echo validation_errors(); 
   if (isset($errors))
      echo $errors;
   ?>
   <?php echo form_error('name_it'); ?>
   <input type="text" name="name_it" />
   <span id="errorsDiv_name_it"></span>
</form>

【问题讨论】:

  • 你有没有自动加载form_helper?
  • 是的,我已经加载 form_helper
  • thanx for solution..thanx ... :)

标签: php codeigniter validation


【解决方案1】:

试试这个:

改变:

if ($_POST)

为:

if ($this-input->post())

信息:http://ellislab.com/codeigniter/user-guide/libraries/input.html

【讨论】:

    【解决方案2】:

    您可以使用form_validation()-&gt;run() 来完成此类任务。它检查是否已发送 POST 以及 validation_rules 是否返回 true。

    if($this->form_validation()->run() == false)
    {
      //load the view
      // other stuff you do while POST is not yet sent or if Input from the user returns false
    
    }else{
      // post has been sent and validiation is TRUE
      // Input is good. . do something
    }
    

    【讨论】:

    • 是同一个控件!是不是和我已经做过的一样,你只是改变了!== FALSE 不是那个问题
    • 我要告诉你的是if($_POST)$this-&gt;form_validation()-&gt;run() 与你的冗余代码相同
    【解决方案3】:

    问题出在error 属性为display:none 的类中

    【讨论】:

      猜你喜欢
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2021-09-10
      • 2017-01-25
      相关资源
      最近更新 更多