AJAX 请求不显示信息

克里斯·马斯兰

我正在尝试使用数据库检查输入的用户名和电子邮件以检查其可用性。

它可以很好地检查电子邮件。我对电子邮件使用相同的代码,但具有不同的 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)中没有显示任何内容。

米兰基达

您看不到响应,因为您在 上使用了错误的索引checkusername.php
更改以下代码

if(isset($_POST['desusername'])){
    $username = $_POST['desusername'];  

对此

if(isset($_POST['username'])){
    $username = $_POST['username'];

你可以走了。:)

确保

data: {
       key:value,
    },

您必须在key从发布请求或获取请求中获取数据时使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章