次のようなサーバー側のPHP関数があります。
function isHandleAvailable($displayname) {
$res = user::getRow(
"SELECT `id` FROM `users` WHERE `displayname` = :displayname",
array(':displayname' => $displayname)
);
if ($res) {
$res = 'Got a row!';
} else {
$res = 'No row :(';
}
echo $res;
}
また、表示名がサイトで既に使用されているかどうかを判断するために使用されます。この関数は、次の JavaScript によって呼び出されます。
function checkHandleAvailability(displayName, callback) {
$.ajax({
type: 'POST',
url: '/users/isHandleAvailable',
data: { displayname: displayName }
})
.done(function(data, textStatus, jqXHR) {
isHandleAvailable = data;
})
.fail(function() {
isHandleAvailable = false;
})
.always(function() { callback(); });
}
ただし、data
とjqXHR.responseText
は両方とも空の文字列です。test.php
基本的なページに配置し、期待される文字列echo
を画面に表示したため、PHP コードが機能していることはわかっています。
.done
結果が関数に戻らないのはなぜですか?