使用ajax收听php回声

使用ajax收听php回声,php,jquery,ajax,Php,Jquery,Ajax,我使用ajax向服务器发送一些数据,收到两个变量,success和error,这取决于邮件是否发送。如何使用ajax听取他们的意见,如何提醒他们,php代码是否正确 php代码: if ($send){ echo json_encode($success); } else { echo json_encode($error); } 你可以这样做 $result["error"] = false; if($send) { $result["data"] = $succe

我使用ajax向服务器发送一些数据,收到两个变量,success和error,这取决于邮件是否发送。如何使用ajax听取他们的意见,如何提醒他们,php代码是否正确

php代码:

if ($send){
    echo json_encode($success);
} else { echo json_encode($error);
    } 

你可以这样做

$result["error"] = false;
if($send) {
    $result["data"] = $success
    echo json_encode($result);
} else {
    $result["error"] = true;
    echo json_encode($result);
}

我假设您的
$send
变量是
mail()
函数的返回值,类似如下:

$headers = 'From: from@from.com';
$send = mail('test@test.com', 'Subject', 'Message', $headers);

echo json_encode(array( 'success' => ($send ? 1 : 0)));
您可以使用jQuery通过AJAX调用它,方法如下:

$.ajax({
    url: '/path/to/script.php',
    success: function( json ) {
        var obj = JSON.parse( json );
        if(obj['success'] == 1) {
            alert('Success!');
        } else {
            alert('Fail!');
        }
    }
});

美元.ajax部分呢?看起来怎么样?你是对的,$send的定义如下:$send=@mail($mailTo,$subject,$message,“From:”.$mailFrom1);但是,当我尝试您的解决方案时,会出现以下错误:200 SyntaxError:JSON.parse:意外的数据结束。尽管如此,电子邮件还是由两个发件人发送。请尝试直接在浏览器中导航到通过AJAX调用的页面。您应该看到的输出内容大致如下:
{“success”:1}
(它还将重新发送电子邮件)您在这里真的失去了我…我调用的页面是发送电子邮件的简单脚本,该脚本也被event.preventDefault()阻止;我只需要获取false或true变量,这样我就可以使用jquery进行一些更改。我知道你现在在说什么,但是帖子没有像你想象的那样重定向,因为它被jquery阻止了。我的意思是,导航到你在AJAX调用的
URL
属性中指定的URL(上面是
http://www.server.com/path/to/script.php
)并告诉我它的输出。它应该是这样的:
{“success”:1}
没有人有一个有效的解决方案吗?