2017-06-03 97 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

如果您遇到任何类型的问题,请告诉我。谢谢你 –