0

您好,我正在为我的网页开发一个 jquery ajax 解决方案,有一个 getir.php 我将它用于 jquery 发布数据(它是一个用户名),如果名称存在,它会回显“TRUE”或“FALSE”

这里是

if (isset($_POST['name'])) {
if($synan->checkNameIsExist($_POST['name'])){
    echo'TRUE';
}else{
    echo'FALSE';
}
}

它工作正常我在控制台中看到真假结果,但我在 jquery 部分有问题

$(document).ready(function () {
    $("#user_name_reg").blur(function () {
        txt = $(this).val();

        $.post("getir.php", {
            name: txt,
            method: "checkName"
        }, function (result) {

            console.log(result);
            if (result == 'TRUE') {
                $("span").html("answer true");
            } else {
                $("span").html("answer false");
            }
        });
    });
});

我无法使它在 if 语句中起作用。谢谢你的建议

4

2 回答 2

3

鉴于您的输出来自:

console.log(typeof result, result.length, result);

string 78 true,我们知道 3 件事:

  1. 我们正在处理一个字符串
  2. 涉及很多空白
  3. 正在进行一些奇怪的案例转换。

下面的解决方案解释了这些观察结果:

result = $.trim(result).toLowerCase();
if (result == 'true') {
    $("span").html("answer true");
} else {
    $("span").html("answer false");
}
于 2013-04-11T01:19:30.300 回答
1

如果 PHP 使用默认内容类型:'text/plain' 并且实际上只返回 'TRUE' 或 'FALSE'没有任何前导空格或其他内容,则上面的示例起作用。您应该确保在调用时在输出周围使用引号console.log()。像这样:

console.log("'" . result . "'");

如果它周围有空格,请确保在 PHP 中的开始<?php标记之前或结束标记之后没有内容?>

于 2013-04-11T01:15:25.710 回答