私は長い間潜んでいて、これが私の最初の投稿なので、気楽に行ってください...
私は Javascript にかなり慣れていないので、最終的には jQuery に取り掛かるつもりですが、今のところは通常の Javascript に固執しています。
PHP で Web サイトを作成しましたが、クライアント側の検証をセットアップしようとしています。
したがって、これらのフォーラムを少し調べたところ、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;
}
}
?>