我正在创建一个系统,检查(通过AJAX)是否已经使用了给定的用户名。如果是,则相应地警告用户。我将我的系统基于this教程,并尝试将其调整到我的网站。
$(document).ready(function()//When the dom is ready
{
$("#username").change(function()
{ //if theres a change in the username textbox
var username = $("#username").val();//Get the value in the username textbox
if(username.length > 3)//if the lenght greater than 3 characters
{
$("#availability_status").html('<img src="loader.gif" align="absmiddle"> Checking availability...');
//Add a loading image in the span id="availability_status"
$.ajax({ //Make the Ajax Request
type: "POST",
url: "ajax_check_username.php", //file name
data: "username="+ username, //data
success: function(server_response){
$("#availability_status").ajaxComplete(function(event, request){
if(server_response == '0')//if ajax_check_username.php return value "0"
{
$("#availability_status").html('<img src="available.png" align="absmiddle"> <font color="Green"> Available </font> ');
//add this image to the span with id "availability_status"
}
else if(server_response == '1')//if it returns "1"
{
$("#availability_status").html('<img src="not_available.png" align="absmiddle"> <font color="red">Not Available </font>');
}
});
}
});
}
else
{
$("#availability_status").html('<font color="#cc0000">Username too short</font>');
//if in case the username is less than or equal 3 characters only
}
return false;
});
});
ajax_check_username.php - 这就是我认为我遇到问题的地方!!
<?php
include ("inc/db/db.php");
if($stmt = $mysqli->prepare('SELECT NULL FROM `bruger` WHERE `brugernavn` = ?'))
{
$stmt->bind_param('s', $brugernavn);
$brugernavn = $_POST["brugernavn"];
$stmt->execute();
$stmt->store_result();
$count = $stmt->num_rows;
$stmt->close();
if($count = 0)
{
echo '1';
}
else
{
echo '2';
}
}
?>
<tr>
<td><p>Brugernavn</p></td>
<td><input type="text" name="brugernavn" id="username"></td>
<td><span id="availability_status"></span></td>
</tr>
注意 我想我的PHP已经犯了错误,所以这可能就是为什么它不想做我想要的事情......但它只是在我想的时候。
这是我在需要检查数据库中的用户名时查找的html。这就是我没有错误的方法。必须说我之前从未玩过ajax或javascript。所以,如果你能帮助我,那将是一个很大的帮助。
随意询问您是否还想了解更多信息。
答案 0 :(得分:0)
如果这会影响您的逻辑,则if($count = 0)
应为if($count == 0)
。
答案 1 :(得分:0)
您在使用之后分配$brugernavn
。
$stmt->bind_param('s', $brugernavn);
$brugernavn = $_POST["brugernavn"];
使用ajaxComplete
在这里没用:
$("#availability_status").ajaxComplete(function(event, request){
您正在指定比较的位置:
if($count = 0)
您的Javascript需要0
或1
,但您的PHP脚本会输出1
或2
之一。