好的,這讓我感到非常緊張。我已經在這裏嘗試了很多其他的答案,但沒有用,我恨我不得不發佈一些被打死的東西,但我不能讓這個工作。jQuery檢查用戶名是否被採用
我正在檢查我的數據庫以查看用戶名是否存在,無論我輸入什麼(無論是否存在),返回都表示該名稱可用。如果我運行檢查並將其轉儲到屏幕上,則會打印正確的退貨。
<?php
$query = new Application_Model_Queries();
$false = $query->userNames('vikingblooded');
print_r($false); //prints 1
$true = $query->userNames('someonespecial');
print_r($true); prints nothing
?>
的Javascript:
$(document).ready(function() {
$("#username").keyup(function() {
$("#message").html("<img src='<?php echo $this->baseUrl('images/ajax-loader.gif'); ?>' class='status' /> checking...");
var username = $("#username").val();
$.ajax({
method: "POST",
url: "<?php echo $this->baseUrl('users/check') ?>",
data: {username: username},
success: function (data) {
if (data === 1) {
$("#message").html("<img src='<?php echo $this->baseUrl('images/cross.png') ?>' /> Username already taken");
} else {
$("#message").html("<img src='<?php echo $this->baseUrl('images/tick.png') ?>' /> Username available");
}
}
});
});
});
PHP
public function userNames($uName) {
$select = $this->_dbTableUsers->select()
->from($this->_dbTableUsers, array('user_name'))
->where('user_name = ?', $uName);
$rows = $this->_dbTableUsers->fetchRow($select);
if ($rows) {
return true;
}
}
HTML
<table>
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="username" id="username"/><td>
<td id="message"><td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="text" name="password" id="password" /><td>
</tr>
</table>
我不認爲JS裏面的PHP將得到執行,像你的AJAX網址。 – mopo922 2014-12-05 22:19:03
而不是返回true/false,你試過返回一個像「available」或「unavailable」這樣的字符串,然後檢查它嗎? – j08691 2014-12-05 22:20:22
正在執行。 – VikingBlooded 2014-12-05 22:21:13