【发布时间】:2013-03-06 15:25:13
【问题描述】:
我正在尝试从 JSON 和 jQuery 开始。我根本不是 JavaScript 程序员,所以我正在混合和匹配,并且在让我的代码正常工作时遇到了很多问题。我想有人可以帮助我。
我有一个模型,它使用以下 PHP 代码来检查电子邮件地址是否已在系统中注册:
function is_email_available($email) {
$this->db->select('1', FALSE);
$this->db->where('LOWER(email)=', strtolower($email));
$this->db->or_where('LOWER(new_email)=', strtolower($email));
$query = $this->db->get($this->table_name);
return $query->num_rows() == 0;
}
我的 ajax 控制器使用以下代码调用上面的代码,如果已注册,则返回 json true 或 false
function email_availability() {
// Check to see if the username is available or taken
if ( $this->users->is_email_available( $this->input->post('emailaddress'))) {
echo json_encode(TRUE);
} else {
echo json_encode(FALSE);
}
}
上面是使用以下 jQuery 从我的 JS 文件中调用的,但它似乎根本不起作用。
if(iEmail.val()) {
$.ajax({
url: '/ajax/email_availability',
data: 'emailaddress=' + iEmail.val(),
dataType: 'json',
type: 'post',
success: function(msg) {
iEmail.next('.error').text('This Email Address is not registered');
error = true;
}
});
}
我认为我的 jQuery 完全关闭,但无法弄清楚。任何帮助将不胜感激。
【问题讨论】:
-
错误在哪里?在请求部分或响应中?如果实际发送了对您的 php 页面的请求,请检查 firebug
-
@gpasci - 如果输入的电子邮件地址不在数据库中,它只会返回“TRUE”
-
你不需要使用 json_encode(true)。相反,你可以只回显 1 或 0。另一件事你有什么错误吗?在哪里?您是否尝试过使用 firebug 或 chrome 的开发人员工具调试代码?
-
在success()回调中发布console.log(msg)日志
-
它说错误,但在我检查之前页面会重新加载。
标签: php jquery json codeigniter