gpt4 book ai didi

php - jQuery 检查用户名是否被占用

转载 作者:行者123 更新时间:2023-12-01 06:10:15 25 4
gpt4 key购买 nike

好吧,这让我抓狂。我在这里尝试了很多其他答案,但无济于事,我讨厌我不得不发布一些已经被打死的东西,但我就是无法让它发挥作用。

我正在检查我的数据库以查看用户名是否存在,无论我输入什么内容(无论是否存在),返回值都会显示该名称可用。如果我运行检查并将其转储到屏幕上,则会打印正确的返回值。

<?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({
method: "POST", // changed from type: "post"
url:"<?php echo $this->baseUrl('users/check')?>",
data: { username: username }, // changed from "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");
}
}
});

您还应该定义您期望返回的数据类型,并尝试使用 JSON 将数据从 PHP 传输到 JS:

PHP:

<?php echo json_encode(array('someValue' => false)); ?>

JS:

$.ajax({
// other stuff
dataType: 'json'
// other stuff
});

关于php - jQuery 检查用户名是否被占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27325552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com