2017-11-21 19 views
0

データをデータベースに挿入するための従業員コントローラを作成しました。データをデータベースに挿入する前に検証を設定したいと思います。codeIgniterでフォームの検証が正しく機能しない

私はテキストボックスに値を入力したにもかかわらず、次のように試しましたが、毎回message field is requiredと表示されます。

1)コントローラ

<?php 
class Employee_controller extends CI_Controller { 
    function __construct() { 
     parent::__construct(); 
     $this->load->helper('url'); 
     /* Load form validation library */ 
     $this->load->library('form_validation'); 
       $this->load->library('email'); 
     $this->load->library('session'); 
     $this->load->helper('form'); 
     $this->load->database(); 
    } 


    function add_employee(){   
     $this->load->view('Employee_add'); 

    } 

    function insert_emp(){ 
    $this->form_validation->set_rules('name', 'Name', 'required'); 
     if ($this->form_validation->run() == FALSE) { 
     $this->load->view('Employee_add'); 
    } else { 
     $this->load->model('Employee_model'); 
      $inserData = array(
      'name' =>$_POST['emp_name'], 
      'salary' => $_POST['emp_salary'] 
     ); 

      $this->Employee_model->insert_employee($inserData); 
      $emp_list['emp_records']= $this->Employee_model->list_employee(); 

     $this->load->view('Employee_list',$emp_list); 
    } 

    } 

} 

2)モデルコード(以下は、私の機種コードである)

<?php 
class Employee_model extends CI_Model { 

     function __construct() { 
     parent::__construct(); 
     } 

     function insert_employee($inserData){ 
     $this->db->insert('employee',$inserData); 

     return true; 
     } 
} 
?> 

3)閲覧

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <div class="center"> 
     <form action="<?php echo site_url('Employee_controller/insert_emp');?>" method="post"> 
     <?php echo validation_errors(); ?> 
      <div class="element"> 
       <label>Name</label> 
       <input type="text" name="emp_name" value=""> 
      </div> 

      <div class="element"> 
       <label>Salary</label> 
       <input type="text" name="emp_salary" value=""> 
      </div> 

      <input type="submit" name="submit" value="Add Employee"> 
     </form> 
    </div> 

</body> 
</html> 
</body> 
</html> 
+0

フォームの入力名は、検証ルールで使用している名前と一致する必要があります。そうではありません。 – TimBrownlaw

+0

また、emp_salaryの検証がないこともわかります。あなたはそれに合わせて追加する必要があります... – TimBrownlaw

答えて

3

は、あなたが渡しているあなたの$this->form_validation->set_rules方法を、確認してくださいnameフィールドがemp_nameとの場合

+1

はい、右の小さなミス。 –

関連する問題