小编典典

Ajax如何与PHP一起使用?

ajax

我在使用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函数起作用?主要是为什么这不起作用?

很感谢任何形式的帮助。谢谢!


阅读 355

收藏
2020-07-26

共1个答案

小编典典

您需要将该success选项添加到您的Ajax请求中,该请求是XHR成功时执行的JS函数。请查看jQuery文档以获取更多信息。

如果不运行脚本,我想您会发现它$_POST['input']是空的。您需要像data: {'input': input}这样做那样传递数据。

您的PHP还需要向脚本返回一些内容。考虑将您的呼叫更改check()为以下内容:

echo (check($_POST) ? 'true' : 'false');

您现在可以在JavaScript中检查内容。

2020-07-26