前言:这最终将扩展到注册表,但我更关心的是首先完成一部分。
现在您将无法连接到我的服务器,但我确实需要帮助,或者至少解释为什么此代码无法正常工作。我已经研究了一个星期左右,并且发现没有什么与我的问题非常相似。
HTML:
<html>
<head>
<script type="text/javascript" src="checking.js"></script>
</head>
<body>
<span id="conTest">
<?php
$con = mysqli_connect("L28-6","turkey","supersecretpassword","stored");
if (mysqli_connect_errno($con))
{
echo"Failed to connect to MySQL: " . mysqli_connect_error();
} else {
echo "success";
}
?>
</span>
Email: <input type="text" id="email" onkeyup="emailCheck(this.value)"/>
<br/>
<span id="emailError"></span>
</body>
</html>
主要错误在js的某个地方看起来像:
function emailCheck(inputvalue)
{
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
var span=document.getElementById("emailError");
if(pattern.test(inputvalue))
{
span.innerHTML="true..checking";
var myRequest = new XMLHttpRequest();
var response = myRequest.reponseText;
myRequest.onreadystatechange = function()
{
if(myRequest.readyState == 4 && myRequest.status == 200)
{
if(response.test(inputvalue))
{
span.innerHTML="already in use";
}
else
{
span.innerHTML="valid";
}
}
myRequest.open("POST", "email.php", true);
myRequest.send();
}
}
else
{
span.innerHTML="not valid email";
}
}
问题肯定在于ajax调用,但这里是php部分(尚未处于工作状态):
<?php
mysqli_query($con,"select user_email from email");
?>
我知道很多代码,但我非常感谢任何输入。 此处还有当使用正确形成的电子邮件时页面的响应:
电子邮件:asdfasdf@yahoo.com
true..checking
所以我确定它甚至没有进入myRequest.readystatechange函数,因为如果它应该在哪里,至少返回“无效的电子邮件”。
答案 0 :(得分:0)
您的ajax请求位于readystatechange中。这意味着永远不会调用ajax请求。
尝试类似:
function emailCheck(inputvalue)
{
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
var span=document.getElementById("emailError");
if(pattern.test(inputvalue))
{
span.innerHTML="true..checking";
var myRequest = new XMLHttpRequest();
var response = myRequest.reponseText;
myRequest.onreadystatechange = function()
{
if(myRequest.readyState == 4 && myRequest.status == 200)
{
if(response.test(inputvalue))
{
span.innerHTML="already in use";
}
else
{
span.innerHTML="valid";
}
}
}
myRequest.open("POST", "email.php", true);
myRequest.send();
}
else
{
span.innerHTML="not valid email";
}
}
我可以看到您的代码的另一个问题。即使在填写完毕之前,该电子邮件仍然有效
即使我需要informe something@domain.com,something@domain.c也会有效。使用按钮请求验证