我是一个很长一段时间的潜伏者,这是我的第一篇文章,所以对我来说放轻松......
所以我对 Javascript 还很陌生,我最终会使用 jQuery,但现在我坚持使用常规的 Javascript。
我已经用 PHP 创建了一个网站,现在我正在尝试设置一些客户端验证。
因此,在对这些论坛进行了一些研究之后,我发现获取 responseText 并不容易,因为它是异步的。所以我研究了回调,但我在设置它们时遇到了很多麻烦。我已经设法设置它,但它不断返回整个 html 页面,而不仅仅是回显的字符串。
function checkName(usernameString, callback) {
//
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","checkName.php?q="+usernameString,true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//document.getElementById("uMess").innerHTML=xmlhttp.responseText;
callback(xmlhttp.responseText);
}
}
//xmlhttp.open("GET","checkName.php?q="+usernameString,true);
xmlhttp.send();
}
function validateUsername(usernameString) {
var valid = true;
checkName(usernameString,function(err,response){
if (err) {
alert('Error: ' + err);
} else {
alert('Response: ' + response);
}
});
.....
有人介意指出我要去哪里灾难性的错误吗?在此先感谢各位:)
另外这里是检查用户名是否被使用的PHP文件
<?php
include_once 'header.php';
$userName = $_GET['q'];
if ( strlen($userName) < 6 ){
$response = "Too Short!";
echo $response;
}
else{
$query = "SELECT user FROM temporaryusers WHERE user='$userName'";
$result = mysql_query($query);
if(mysql_num_rows($result))
{
$response="Taken";
echo $response;
}
else{
$response="Available";
echo $response;
}
}
?>