我正在向使用 jQuery 的网页添加一些 Ajax。请注意,我是 Ajax 的新手。该页面是一个简单的注册表单,我想检查用户提供的电子邮件地址是否已经注册,并在表单重定向到注册码之前告诉用户是否已注册。
我一直在阅读这个问题及其答案,并尝试重现这种效果,但没有成功。
当我单击提交时,将调用 javascript 函数(我已经通过在checkEmail()
函数中添加一些诊断代码来证明这一点),但是当我检查我的 Apache 服务器日志时,我可以看到我期望的所有请求,除了调用/user/process/chechemail.php
. 代码(如下)位于/user/
目录中,我已经url:
使用相对和绝对路径的所有变体修改了路径。Apache 错误日志中没有记录任何内容。
当用户单击提交按钮时,他们会看到消息“出错了!”。谁能发现哪里出了问题?
我的代码如下:
<script>
function checkEmail()
{
$.ajax(
{
type: "POST",
dataType: "html",
data:
{
email: $('#email').val()
},
url: "/user/process/checkemail.php"
})
.done(function(response)
{
$('#message').html(response);
})
.fail(function()
{
$('#message').html("Something went wrong!");
return false;
});
}
</script>
<div id="register-form">
<form name="register" action="process/register.php" method="post" onsubmit="return checkEmail();">
<div class="register-email-cell">
<p class="text">Email Address</p>
</div>
<div class="register-email-cell">
<input class="input" type="text" name="email">
</div>
<div class="register-email-cell">
<input class="button" type="submit" value="Register">
</div>
<div>
<p id="message" class="text"></p>
</div>
</form>
</div>
笔记:
- 对 jQuery的
<script>
引用在 PHP 包含中,上面没有显示 - /user/process/checkemail.php - 查找 $_REQUEST['email'],并对数据库执行查询并返回一个字符串,说明“电子邮件地址存在”或“电子邮件地址可用”——我意识到这可能允许机器人收集电子邮件地址,但这只是我自己学习的示例代码。- 它不会是生产代码。