在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()
的参数中,看看会发生什么