使用ajax在codeigniter中进行表单验证

时间:2016-03-25 06:11:28

标签: php ajax forms codeigniter validation

我想验证组名。

我正在使用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>');
    }
}

请帮忙......

1 个答案:

答案 0 :(得分: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;

只需回显ajax结果即可立即离开。请把它作为一个友好的建议。