2017-06-03 98 views
1

我是在codeigniter中使用表單驗證的初學者,現在我試圖使用表單驗證codeigniter庫,爲什麼不執行?我已經在我的控制器的頂部加載了$this->load->library('form_validation');。我的意思是我想要輸出的地方將錯誤放在我的輸入類型下面。爲什麼我的錯誤在array('required' => 'Error Message on rule2 for this field_name'));不出現在我的視圖中。只有在控制檯響應表單驗證代碼點火器不起作用

這裏是我的fullcode:

VIEW:

<div class="modal fade large" id="admin_create_acct" role="dialog"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header btn-success"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h3 class="modal-title">Create Account</h3> 
      </div> 
      <div class="modal-body"> 
<form class="form-horizontal" id="frm_create_user"> 
       <div class="form-group"> 
       <label for="userFName" class="control-label col-sm-4">First Name:</label> 
       <div class="col-sm-6"> 
       <input type="text" class="form-control" name="userFName" id="userFName" placeholder="First name"> 
       <div class="msg"></div><!-- form-group --> 
       </div><!-- col-sm-6 --> 
      </div><!-- form-group --> 
      <div class="form-group"> 
       <label for="userMName" class="control-label col-sm-4">Middle Name:</label> 
       <div class="col-sm-6"> 
       <input type="text" class="form-control" name="userMName" id="userMName" placeholder="Middle name"> 
       <div class="msg"></div><!-- form-group --> 
       </div><!-- col-sm-6 --> 
      </div><!-- form-group --> 
</form><!-- form-horizontal --> 
<button type="button" id="btn_reg" onclick="create_User()" class="btn btn-primary">Create Account</button> 

我只是想一個輸入類型和一些錯誤的驗證,現在這裏是我的控制器代碼:

public function reg_user(){ 

     $this->form_validation->set_rules('userFName', 'userFName', 'trim|required', 
    array('required' => 'Error Message on First name ') 
    ); 

    $this->form_validation->set_rules('userMName', 'userMName', 'trim|required', 
    array('required' => 'Error Message on Middle Name') 
    ); 

    if ($this->form_validation->run() == FALSE) { 
     $result['type'] = 'error'; 
     $result['message'] = validation_errors(); 
    }else { 
     $result['type'] = 'success'; 
     $result['message'] = 'Whooos..! Your Succes Message'; 
    } 

    echo json_encode($result); 
} 

我的AJAX從視圖:

function create_User() { 
    $.ajax({ 
     url: siteurl+"admin_controls/reg_user", 
     type: "POST", 
     data: $("#frm_create_user").serialize(), 
     dataType: "JSON", 
     success: function(data) { 
      alert(" User Successfully Added added! "); 
      $("#frm_create_user")[0].reset(); 
     } 
    }); 
} 

回答

2

請按照此方法。 或者

如果只是複製並粘貼此代碼它一定會努力,所有你需要的只是形式行動

public function reg_user(){ 

     $this->form_validation->set_rules('userFName', 'userFName', 'trim|required', 
array('required' => 'Error Message on First name ') 
); 

      $this->form_validation->set_rules('userMName', 'userMName', 'trim|required', 
array('required' => 'Error Message on Middle Name') 
); 
      if ($this->form_validation->run() == TRUE) { 

        $result['status'] = true; 
        $result['message'] = "Data inserted successfully."; 

      }else { 
       $result['status'] = false; 

       $result['message'] = $this->form_validation->error_array(); 
      } 
      echo json_encode($result); 
    } 

現在更改控制器名阿賈克斯部分

在Ajax我使用FormData函數而不是使用序列化函數。如果你打算上傳文件,這將會很有幫助。

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#form_data").submit(function(e){ 
     e.preventDefault(); 
     var formData = new FormData($("#form_data")); 

     $.ajax({ 
      url : $("#form_data").attr('action'), 
      dataType : 'json', 
      type : 'POST', 
      data : formData, 
      contentType : false, 
      processData : false, 
      success: function(resp) { 
       console.log(resp); 
       $('.error').html(''); 
       if(resp.status == false) { 
        $.each(resp.message,function(i,m){ 
         $('.'+i).text(m); 
        }); 
       } 
      } 
     }); 
    }); 

    return false; 
}); 

查看部分

<a data-toggle="modal" href='#admin_create_acct' class="list_sort">Select<a> 
<div class="modal fade large" id="admin_create_acct" role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header btn-success"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h3 class="modal-title">Create Account</h3> 
      </div> 
      <div class="modal-body"> 
       <form class="form-horizontal" action="<?php echo base_url('Practice/test_user')?>" method="post" id="form_data"> 
        <div class="form-group"> 
         username : <input type="text" class="form-control" name="name"> 
         <span class="error userFName"></span> 
        </div> 
        <div class="form-group"> 
         password : <input type="text" class="form-control" name="userMName"> 
         <span class="error userMName"></span> 
        </div> 

        <input type="submit" name="submit" value="submit"> 
       </form>  
      </div> 
     </div> 
    </div> 
</div> 
+0

感謝您的回覆..先生您好,,如果我得到了兩種輸入類型。我有一個問題,因爲當我做了兩個輸入類型,兩個錯誤將輸出在每個人輸入類型 –

+0

所以你想要告訴我什麼。如果你有兩個輸入字段那麼它會顯示每個字段的錯誤消息。 –

+0

如果您遇到任何類型的問題,請告訴我。謝謝你 –