如何在AJAX中使用RETURN值(来自服务器脚本)

时间:2017-02-25 11:08:56

标签: javascript php jquery ajax

我尝试使用PHP验证服务器端的电子邮件。我正在使用jQuery" $。post()"功能。我知道我可以用' $。ajax()'太

但问题是如果服务器端PHP脚本返回一个值,那么jquery post或ajax都无法捕获结果,但如果PHP' echo'结果然后它完美地运作。

我的问题是如何才能捕捉到PHP退回的结果而不是#ECHO'

目前我的JS代码如下所示:

function validate_email(email) {

    $.post('106_1.email.php', {email: email}, function (responseData) {

        $('#feedback').html(responseData);
    });
}

和PHP代码如下所示:

$email = $_POST['email'] ?? null;

if ($email) {

    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

        echo '<span class="text-primary">Email is valid.</span>';
    } else {

        echo '<span class="text-danger">Invalid Email ...!</span>';
    }
}

但我真的希望PHP返回如下的布尔值:

$email = $_POST['email'] ?? null;

if ($email) {

    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

        return true;
    } else {

        return false;
    }
}

但是如果我这样做或者返回除Boolean之外的任何东西,那么jQuery代码也无法捕获它。

但我需要PHP才能返回&#39;结果反而是回声&#39;

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

试试这个:

腓:

$email = $_POST['email'] ?? null;

if ($email) {

    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo true;
    } else {

        echo false;
    }
}

Jquery的:

$.ajax({
    url : '106_1.email.php',
    data: {
        email: email
    },
    success: function(response){
        if(response)    // here response = true;
        {
            // do something
        }
        else
        {
            // do something
        }
    }
});