2017-06-03 14 views
1

私はcodeigniterでフォーム検証を使用している初心者ですが、今はフォーム検証codeigniterライブラリを使用しようとしていますが、なぜこれが実行されないのですか?私は既にコントローラの上部に$this->load->library('form_validation');をロードしました。私は私の入力の種類の下にエラーを置く出力をしたいということです。 array('required' => 'Error Message on rule2 for this field_name'));で私のエラーがなぜ私のビューに表示されません。ここでは、コンソールフォーム検証コードigniterが動作しない

で応答しただけの私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> 

私はちょうど1つの入力タイプおよび検証するためのいくつかのエラーをしようと、今、ここに私のコントローラのコードがあるのです:

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パート

にはAjax私はserialize関数を使用する代わりに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

は、私は2つの入力タイプを得たものならば,,こんにちは..お返事ありがとうございます。 2つの入力タイプを作成した場合、2つのエラーがすべての入力タイプで出力されるので、問題があります。 –

+0

何をしたいですか正確に教えてください。 2つの入力フィールドがある場合は、各フィールドのエラーメッセージが表示されます。 –

+0

問題の種類が増えてきたら、それは役に立ちます。ありがとう –

関連する問題