我正在尝试检查输入的用户名和电子邮件与数据库,以检查其可用性。
它完全检查电子邮件。我对电子邮件使用相同的代码但具有不同的ID标记:
这是我的用户名表单:
<label for="username">Desired Username</label>
<input type="text" class="form-control" id="desusername" name="desusername" placeholder="Enter username" onkeyup="checkname();" required>
<span id="name_status"></span>
这是检查它的功能:
function checkname()
{
var username=document.getElementById("desusername").value;
if(username) {
$.ajax({
type: 'post',
url: '../members/authentication/checkusername.php',
data: {
username:username,
},
success: function (response) {
$( '#name_status' ).html(response);
if(response=="OK") {
return true;
}else {
return false;
}
}
});
}
else {
$( '#name_status' ).html("");
return false;
}
}
这是我要检查的php脚本:
<?php
require_once("../../includes/database.class.php");
if(isset($_POST['desusername'])){
$username = $_POST['desusername'];
$sql = "SELECT username FROM users WHERE username = '$username'";
$result = $database->query($sql);
if(mysqli_num_rows($result) > 0) {
?>
<div class="alert alert-danger" role="alert">
<strong>Username already exists</strong>. Please choose a different one.
</div>
<?php
}else{
?>
<div class="alert alert-success" role="alert" style="margin-top: 10px;">
<strong>Valid</strong>. You are good to go!
</div>
<?php
}
exit();
}
?>
现在,在开发人员控制台中,它显示每次输入时都调用该函数:
XHR finished loading: POST "http://localhost/members/authentication/checkusername.php".
但相关div(#name_status)中没有显示任何内容..
答案 0 :(得分:0)
由于您在checkusername.php
上使用了错误的索引,因此无法看到回复。
更改以下代码
if(isset($_POST['desusername'])){
$username = $_POST['desusername'];
到这个
if(isset($_POST['username'])){
$username = $_POST['username'];
你很高兴。 :)
确保
data: {
key:value,
},
从发布请求或获取请求中获取数据时,您必须使用key
。