Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jqueryajax,如果其他方法不起作用_Php_Jquery_Ajax_If Statement - Fatal编程技术网

Php jqueryajax,如果其他方法不起作用

Php jqueryajax,如果其他方法不起作用,php,jquery,ajax,if-statement,Php,Jquery,Ajax,If Statement,正如我所调查的那样,这个语句的返回数据是“经过身份验证的”,这意味着if语句应该生效。然而,由于我不知道的原因,它直接转到语句的其他部分,使数据为假,即使它是真的。像“authenticated”==“authenticated”。它忽略了if部分,我不知道为什么 function login_admin_user() { username = $("#ad-username").val(); password = $("#ad-password").val(); $(

正如我所调查的那样,这个语句的返回数据是“经过身份验证的”,这意味着if语句应该生效。然而,由于我不知道的原因,它直接转到语句的其他部分,使数据为假,即使它是真的。像
“authenticated”==“authenticated”
。它忽略了if部分,我不知道为什么

function login_admin_user() {

    username = $("#ad-username").val();
    password = $("#ad-password").val();
    $("#button-login").val("Logging in...");

    $.post("ajax-login.php", {
        username: username,
        password: password
    }, function (data) {

        if (data == "authenticated") {
            /*  Execute if authenticated */
            $("#box-login-confirmed").fadeIn("slow", function () {
                $("#button-login").val("Login");
            })
                .delay(1000)
                .fadeOut(400, function () {
                window.location = "home.php";
            });

        } else {

            /*  Execute if invalid login */

            $("#box-login-error").fadeIn("slow", function () {
                $("#button-login").val("Login");
                $("#ad-password").val("");
            })
                .delay(3000)
                .fadeOut(400);

        }

    });
}
“授权”=“已验证”
。你错过了一个“t”。您的响应也可能包含空格。因此,检查响应中的内容。在进行检查之前,最好调整您的响应。可以使用函数删除空格

试着

if($.trim(data) == "authenticated"){
  //Some code
}
else{
  //Some code
}
为什么响应包含空格。你可以在这里找到答案


  • $.post方法的默认返回类型是HTML。因此,如果将返回类型设置为JSON,并在PHP文件中将JSON编码的值返回为“authenticated”。。那可能行得通

    我也遇到过这个问题。从响应数据中使用$.trim()将有助于修改奇怪的空格。

    authenticated==“authenticated”
    这将是错误的。你在第一个单词中漏掉了一个“t”。如果(true),只需尝试
    。另一种调试方法是在if语句之前
    console.log(data)
    ,查看它到底在向您吐什么。如何console.log(data)?来自ajax-login.php的结果是“已验证的”,因此它与上述代码中的if条件相匹配。然而,即使符合条件,它也会直接转到else部分。显然它不会,否则你就不会在这里问为什么它不工作了。您是否尝试过
    if(true)
    ?另外,就在
    }行之后,函数(data){
    add
    console.log(data)
    然后看一看:我建议您将它放在
    if
    语句之前:
    console.log(“+data+”);
    然后查看调试日志,这样您就可以准确地看到
    数据
    变量是什么。如果它要进入
    else
    语句,那么它显然不是您想要的,所以您必须计算它有什么值。这应该是基本调试。要么记录该值,要么设置一个断点,然后查看该值。在不了解基本调试工具的情况下编写Javascript是非常非常困难的,当然不推荐这样做。这不是缺少的
    t
    。这是一个输入错误。还有一种可能是空格。我已经提到过,tooTHIS ONE可以完美地工作。$.trim(数据)。这是如何工作的?因为来自ajax登录的数据是这样的:echo“authenticated”;没有空格,但我仍然需要修剪它,即使我清楚地回应没有空格的“已验证”。非常感谢兄弟!:)