我正在使用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;
}
}
遥控器应检查用户名是否已存在。
答案 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);
}