2016-03-25 14 views
0

groupnameを検証したいと思います。ajaxでcodeigniterのフォームを検証する

助けてください、私はAJAXを使用していますが、それはこれが

<?php echo form_input(['name'=>'groupname','class'=>'form-control','placeholder'=>'Enter group name','value'=>'','ng-model'=>'myWelcome[0].groupname','onkeyup'=>'loadValid(this.value)']) ?> 

のJavascript機能

<script type="text/javascript"> 
    function loadValid(v) { 
    if(v) 
    { 
     var url= window.location.href; 
     var res = url.split("/"); 
     var groupid = res[res.length-1]; 
     var xhttp = new XMLHttpRequest(); 
     xhttp.onreadystatechange = function() { 
      if (xhttp.readyState == 4 && xhttp.status == 200) { 
       document.getElementById("demo").innerHTML = xhttp.responseText; 
      } 
      }; 
     xhttp.open("GET", site_url + "admin/Usergroup_controller/store_edit_group_name_ajax/" + groupid + "/" + v, true); 
     xhttp.send(); 
    } 
    else 
    { 
     document.getElementById("demo").innerHTML = "Group name is required field."; 
    } 
    } 
</script> 

コントローラ機能

public function store_edit_group_name_ajax($groupid,$groupname) 
{ 
    $this->load->library('form_validation'); 
    $this->form_validation->set_rules('groupname', 'Group name', 'trim|required|alpha|is_unique[group.groupname]|min_length[3]'); 

    if($this->form_validation->run()) 
    { 
     echo form_error('groupname','<p class="text-danger">','</p>'); 
    } 
} 

私の見解である

が動作していません...

答えて

0

最初にレスポンスオブジェクトを作成していることを確認してください。

$response = new stdClass(); 
if ($this->form_validation->run() == false) 
{ 
    $response->status = 'failure'; 
    $response->error = validation_errors('<p class="text-danger">', '</p>'); 
} 
... 
return $response; 

応答が得られた後のJavascriptで、

document.getElementById("demo").innerHTML = xhttp.responseText.error; 

ちょうどecho-ing ajaxの結果は、すぐに離れる必要があります。それを親切なアドバイスとして受けてください。

+0

「未定義」@YahyaEを表示していません – Jatin

関連する問題