2

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

3 に答える 3

0

これを試して:

変化する:

if ($_POST)

為に:

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

情報: http://ellislab.com/codeigniter/user-guide/libraries/input.html

于 2013-02-19T19:50:27.253 に答える
0

error問題は属性を持つクラスにありましたdisplay:none

于 2013-02-21T09:39:13.757 に答える
0

を使用して、form_validation()->run()この種のタスクを完了することができます。POST が送信されたかどうかを確認し、validation_rulestrue を返すかどうかを確認します。

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
}
于 2013-02-20T00:21:36.973 に答える