【问题标题】:validation error in CodeigniterCodeigniter 中的验证错误
【发布时间】:2014-05-26 12:10:31
【问题描述】:

我可以知道为什么我的插入功能会首先显示验证消息,即使我还没有插入任何数据。一旦我进入插入页面,它就会显示验证消息。我尝试将表单验证移动到下面if else 语句,它不显示验证消息,但它不能将数据提交到数据库。下面是我的控制器功能。

 public function Insert_Result($Course_ID=null)
     {
         $this-load-helper('form');
         $this-load-library('form_validation');

         /* Model */
         $this-load-model('ResultEvaluation');

         /* Session */
         $session_data = $this-session-userdata('logged_in');
         $data['Ins_ID'] = $session_data['Ins_ID'];
         $this-session-set_userdata($data);

         /* Form Validation*/

         //$this-form_validation-set_rules('Course_ID', 'Course_ID', 'required');
         $this-form_validation-set_rules('Matric_No', 'Matric_No','required');
         $this-form_validation-set_rules('Student_Name', 'Student_Name', 'required');
         $this-form_validation-set_rules('Result_Mark_1', 'Result_Mark_1', 'required');
         $this-form_validation-set_rules('Result_Mark_2', 'Result_Mark_2', 'required');
         $this-form_validation-set_rules('Result_Mark_3', 'Result_Mark_3', 'required');
         $this-form_validation-set_rules('Result_Mark_4', 'Result_Mark_4', 'required');
         $this-form_validation-set_rules('Result_Mark_5', 'Result_Mark_5', 'required');

         if ($this-form_validation-run() === FALSE)
         {
             $data['results'] = $this-ResultEvaluation-get_record();
             $data['query'] = $this-ResultEvaluation-view($Course_ID);

             $this-load-view('templates/header');
             $this-load-view('Insert_Result', $data);
             $this-load-view('templates/footer');
         }
         else
         {
             $my_action = $this-input-post('submit');
             if ($my_action == 'Submit') 
             {
                 $this-ResultEvaluation-insert_record($Course_ID);
                 redirect('Result_Evaluation/Student_Result_List/'.$Course_ID,
 'refresh'); 
             }
         }        
         $my_action = $this-input-post('submit');
         if ($my_action == 'Cancel') 
         {
             redirect('Result_Evaluation/Student_Result_List/'.$Course_ID,
 'refresh');
         }

      }

【问题讨论】:

  • 是的,但是当我输入表单时它会显示。如果有错误,一旦我按下提交按钮,验证应该会弹出。
  • if ($this-form_validation-run() == FALSE)
  • 已更正,但输入插入表单后仍会显示验证。

标签: php codeigniter validation


【解决方案1】:

我认为这应该会有所帮助

public function index(){
        $this->load->library(array('form_validation'));
        $this->form_validation->set_rules('field_name', 'Text','trim|required');

            if($this->form_validation->run()==TRUE){

               // do something
            }else{
                // validation error
                redirect("to/your/controller");
                break;
            }
    }

欲了解更多信息,请访问:http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html

【讨论】:

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