如何使用AJAX从PHP函数中获得真或假?

时间:2016-04-23 11:46:33

标签: php jquery ajax

我使用var_dump($ result)测试了 status.php 返回值,并在check()函数中将其警告出来,如下所示:

function check() {
    $.ajax({
        url: "status.php"
    }).done(function(data) {
        alert(data);
    });
}

并且它确实根据情况返回true或false,但是当我在check()函数内检查数据是真还是假时,它总是返回false。

status.php:

<?php 
function status(){
    if(logged() === true) {
        $result = true;
    } else {
        $result = false;
    }
    return $result;
}
status();
?>

check()函数:总是警告“false”,即使有时应该是“true”

function check() {
    $.ajax({
        url: "status.php"
    }).done(function(data) {
        if(data === true){
            alert("true");
        } else {
            alert("false");
        }
    });
}

6 个答案:

答案 0 :(得分:1)

您没有将status()函数的返回值发送回PHP。使用:

echo json_encode(status());

并更改AJAX调用以期待JSON响应。

function check() {
    $.ajax({
        url: "status.php",
        dataType: 'json'
    }).done(function(data) {
        alert(data);
    });
}

答案 1 :(得分:1)

你只需像这样回应$结果

ajax没有返回值,所以我们必须回应它。

 <?php function status(){
if(logged() === true) {
    $result = true;
} else {
    $result = false;
}
echo $result;  } status();  ?>

然后应该是这样的

function check() {
$.ajax({
    url: "status.php"
}).done(function(data) {
    if(data == "true"){
        alert("true");
    } else {
        alert("false");
    }
});   }

答案 2 :(得分:1)

使用

**dataType: 'json'** 
function check() {
    $.ajax({
        url: "status.php",
        dataType: 'json'
    }).done(function(data) {
        alert(data);
    });
}

并在status.php上使用

echo json_encode(status()); 

答案 3 :(得分:1)

你无法通过ajax中的return方法获得响应。获得值“echo”无论函数中的结果如何,如

function status(){
    if(logged() === true) {
        $result = "1";
    } else {
        $result = "0";
    }
    echo $result;exit;
}

您将在ajax成功函数中获得值1或0

答案 4 :(得分:0)

Ajax可能没有返回布尔值truefalse,而是返回一个字符串。

请尝试将true放在双引号中:

if(data=="true")

您还可以对数据使用trim函数,以确保返回的数据中不存在空格,如下所示:

if($.trim(data)=="true")

答案 5 :(得分:0)

只需删除类型检查,即&#39; ===&#39;替换为&#39; ==&#39;

function check() {
    $.ajax({
        url: "status.php"
    }).done(function(data) {
        if(data == true){
            alert("true");
        } else {
            alert("false");
        }
    });
}