使用AJAX和PHP检查电子邮件地址是否存在


Checking if email address exists using AJAX and PHP

在SO Chat上讨论了几个小时后,有人帮助我开始,我自己做了一点补充,产生了以下JSFiddle:

http://jsfiddle.net/aKENW/2/

我已经在另一个在线服务器上创建了一个测试mysql数据库。我还放置了一个验证文件,其中包含以下php代码:

<?php
$db = new PDO('mysql:host=localhost;dbname=...', '...', '...');
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$emailInput = $_POST['signUpemail'];
$result = $db->prepare('SELECT * FROM people WHERE email=?');
$result->execute(array($emailInput));
$count = count($result->fetchAll());
if ($count > 0){
    echo 0;
}
else {
    echo 1;
}
?>

上面的文件叫做validation.php,放在同一台服务器上。该文件由JSFiddle AJAX代码中的url参数访问。

我在表单声明中添加了action="google.com",目的是用户被重定向到该url,如果输入的用户名有效,并且输入的电子邮件在对我的数据库进行检查后是有效的。

数据库中已经存在的测试邮件为test7@gmail.com

我做错了什么?

EDIT:对不起,我没有在原始帖子中明确问题是什么。问题是,电子邮件根本没有验证。无论我在文本框中输入什么电子邮件地址,无论它是否在数据库中,它都不会通过。页面没有被重定向到google.com。我添加google.com的唯一原因是使它明显的形式是否实际工作或不

JavaScript代码没有向PHP脚本发送任何表单参数:

document.getElementById('signUpemail').onkeyup = function (e) {
    $.ajax({
        type: 'POST',
        url: 'http://demcode.5gbfree.com/validate.php',
        success: function (data) {
            createError('Username is already registered');
        }
    });
}

将一些数据放入$.ajax()的参数中,看看会发生什么