以下は、ユーザー名の可用性を確認するための非常に基本的なスクリプトです。
何かを入力するとすぐにgif読み込みアイコンが表示されますが、#status内に「OK」または「利用不可」が表示されるはずなのに、何らかの理由で何も起こりません。
HTML:
<label>Username</label>
<input type="text" class="input" name="username" id="username"/>
<span id="status"></span>
JS 部分:
<script type="text/javascript">
$(document).ready(function() {
$("#username").change(function() {
var username = $("#username").val();
var msgbox = $("#status");
if (username.length >= 4) {
$("#status").html('<img src="images/gif/ajax-loading.gif">');
$.ajax({
type: "POST",
url: "ajax_check.php",
data: "username=" + username,
success: function(msg) {
$("#status").ajaxComplete(function(event, request) {
if (msg === 'OK') {
msgbox.html('Available');
} else {
msgbox.html(msg);
}
});
}
});
} else {
$("#status").html('Cannot be less than 3 letters');
}
return false;
});
});
</script>
ajax_check.php は次のとおりです。
<?php
include('includes/connect.php');
if(isset($_POST['username']))
{
$username = $_POST['username'];
$username = mysql_real_escape_string($username);
$rows = query("SELECT id FROM users WHERE username='$username'");
if (count($rows) == 1) {
echo 'not available!';
} else {
echo 'OK';
}
}
?>
クエリを確認しましたが、正常に動作します。
また、JS コンソールはエラーを報告しません。
何か案は?