我在使用Ajax和PHP时遇到麻烦.我想做的是调用ajax函数,该函数从表单的输入中获取值,并检查数据库中是否存在该电子邮件.这是我目前的javascript:
//Checks for Existing Email
function checkExisting_email() {
$.ajax({
type: 'POST',
url: 'checkExist.PHP',
data: input
});
emailExists = checkExisting_email();
//If it exists
if (emailExists) {
alert("This email already exists!");
}
不幸的是,我无法戒备.在我的PHP函数中,它检查输入的是用户名还是电子邮件(仅出于我的目的,所以您知道),然后在任一列中查找它.如果找到它,则返回true,否则返回false:
include ('func_lib.PHP');
connect();
check($_POST['input']);
function check($args)
{
$checkemail = "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
if (!preg_match($checkemail, $args)) {
//logic for username argument
$sql = "SELECT * FROM `users` WHERE `username`='" . $args . "'";
$res = MysqL_query($sql) or die(MysqL_error());
if (MysqL_num_rows($res) > 0) {
return true;
} else {
return false;
}
} else {
//logic for email argument
$sql = "SELECT * FROM `users` WHERE `email`='" . $args . "'";
$res = MysqL_query($sql) or die(MysqL_error());
if (MysqL_num_rows($res) > 0) {
return true;
} else {
return false;
}
}
}
所以我的问题是,ajax如何响应这些返回值,以及如何相应地使ajax函数起作用?主要是为什么这不起作用?
很感谢任何形式的帮助.谢谢!
解决方法:
您需要将成功选项添加到您的Ajax请求中,该请求是XHR成功时执行的JS函数.看看jQuery documentation以获得更多信息.
如果不运行脚本,我想您会发现$_POST [‘input’]为空;您需要像传递数据一样传递数据:{‘input’:input}来做到这一点.
您的PHP还需要向脚本返回一些内容.考虑将对check()的调用更改为以下形式:
echo (check($_POST) ? 'true' : 'false');
您现在可以在JavaScript中检查内容.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。