带有codeigniter的jquery验证插件远程功能

时间:2014-03-20 13:39:53

标签: javascript php jquery codeigniter

我正在使用jquery验证插件。我不知道远程功能是如何工作的。

到目前为止,这是我的代码:

functions.js

user: {
            required: true,
            remote: {
                url: "http://localhost/iTransaction/home/checkUser",
                type: "post",
                async: false
            }
        }

控制器:

    function checkUser(){
    return $this->itransaction_model->checkUser();
}

型号:

function checkUser(){
    $this->db->select("user");
    $query = $this->db->get("member");
    $row = $query->row();
    echo $row->user;

    if($row->user == $this->input->post("user")){
        return true;
    }else{
        return false;
    }
}

遥控器应检查用户名是否已存在。

1 个答案:

答案 0 :(得分:0)

来自the docs

  

通过jQuery.ajax(XMLHttpRequest)调用serverside资源,并获取与validated元素的名称对应的键/值对及其作为GET参数的值。响应被评估为JSON,对于有效元素必须为true,并且对于无效元素,可以是任何false,undefined或null,使用默认消息;或者一个字符串,例如。 " 该名称已被采用,请尝试使用peter123 "显示为错误消息。

您的控制器方法以对库没有任何意义的方式返回布尔值,并被解释为false。您需要以不同的方式返回验证结果:

function checkUser(){
    $this->output->set_content_type('application/json');
    $this->output->set_header('Cache-Control: no-cache, must-revalidate');
    $this->output->set_header('Expires: '.date('r', time()+(86400*365)));

    $output = json_encode(
        $this->itransaction_model->checkUser() ? true : 'That username is alreay in use'
    );

    $this->output->set_output($output);
}
相关问题