AJAX请求不显示信息

时间:2017-08-02 15:37:33

标签: php jquery mysql 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)中没有显示任何内容..

1 个答案:

答案 0 :(得分:0)

由于您在checkusername.php上使用了错误的索引,因此无法看到回复。
更改以下代码

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

到这个

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

你很高兴。 :)

确保

data: {
       key:value,
    },

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