混淆了jquery .ajax .done()函数

Vin*_*nce 10 ajax jquery

我对如何使用ajax .done()函数感到有点困惑.我正在验证一个表单以检查用户是否存在于数据库中,尽管ajax是最好的方法(仍在学习它).我有一个php文件,如果用户存在则返回true,如果用户不存在则返回false.如何将布尔值传递给done函数的参数?

$(".check").blur(function(){
  var username = $(".check").val();
  $.ajax({
    url: "validateUser.php",
    type: "post",
    data: "username= " + username
  }).done(function(result){
    if (result == true){
      // User exists
    }else{
      // User doesn't exist
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的.我尽力解释它.

dt1*_*192 7

我认为它应该是结果=='true',因为结果是数据字符串

我刚刚检查过,我是对的,引号让它起作用

PHP:

<?php

if($_POST['username']=='sambob'){echo 'true';}else{echo 'false';}

?>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

username='sambob';

$(".check").blur(function(){
  $.post("validateUser.php", { username: username })
  .done(function(data) {
     if (data == 'true'){
        alert("User exists");
     }else{
        alert("User doesn't exist"); 
     }
  });
});
Run Code Online (Sandbox Code Playgroud)

json PHP

<?php

if($_POST['username']=='sambob'){echo'{"exists":true}';}
                            else{echo'{"exists":false}';}
?>
Run Code Online (Sandbox Code Playgroud)

json Javascript

$(".check").blur(function(){
   $.post("validateUser.php", { username : username },
   function(user){
      if (user.exists == true){
         alert("User exists");
      }else{
         alert("User doesn't exist");
      }
   }, "json");
});
Run Code Online (Sandbox Code Playgroud)


soy*_*uka 5

在你的PHP方面,你应该回应一些json string,例如我会这样做validateUser.php:

//Check your database etc.
$user_exists = array('error'=>false,'user'=>true);
echo json_encode($user_exists);
Run Code Online (Sandbox Code Playgroud)

而不是与jQuery:

$.ajax({
    url: "validateUser.php",
    type: "post",
    data: "username= " + username,
    dataType: "json",
  }).done(function(result){
    if (result.error == false){
        //No errors, check user
        if(result.user == true)
            alert("Exists"); //now do some stuff
        else
            alert("User don't exists");
    }else{
      // There is an error
    }
  });
Run Code Online (Sandbox Code Playgroud)