Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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
Javascript 如何在AJAX中使用返回值(来自服务器脚本)_Javascript_Php_Jquery_Ajax - Fatal编程技术网

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

Javascript 如何在AJAX中使用返回值(来自服务器脚本),javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在尝试使用PHP在服务器端验证电子邮件。我使用jQuery“$.post()”函数来完成这项工作。我知道我也可以用“$.ajax()”来完成 但问题是,如果服务器端PHP脚本返回一个值,那么jQueryPost或ajax都无法捕获结果,但是如果PHP“回显”结果,那么它就可以完美地工作 我的问题是如何捕捉PHP“返回”的结果,而不是“ECHO”的结果 目前我的JS代码如下所示: function validate_email(email) { $.post('106_1.email

我正在尝试使用PHP在服务器端验证电子邮件。我使用jQuery“$.post()”函数来完成这项工作。我知道我也可以用“$.ajax()”来完成

但问题是,如果服务器端PHP脚本返回一个值,那么jQueryPost或ajax都无法捕获结果,但是如果PHP“回显”结果,那么它就可以完美地工作

我的问题是如何捕捉PHP“返回”的结果,而不是“ECHO”的结果

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

function validate_email(email) {

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

        $('#feedback').html(responseData);
    });
}
$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代码如下所示:

function validate_email(email) {

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

        $('#feedback').html(responseData);
    });
}
$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>';
    }
}
但如果我这样做或返回布尔值以外的任何值,jQuery代码也无法捕捉到这一点

但是我需要PHP“返回”结果,而不是“echo”

任何帮助都将不胜感激。

试试以下方法:

Php:

Jquery:

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

非常好的解决办法,但我真的需要PHP代码返回,而不是做回声在所有。。。因为对于更复杂的任务,我需要返回。。。