将php obj返回到javascript回调

时间:2015-12-09 08:02:46

标签: javascript php jquery

如何在print_r()中获取done()输出,以便我可以查看data.emaildata.url

的jQuery

    $.post("php/checkinput.php", {
        email: contactEmail.val(),
        url: contactWebsite.val()
    }).done(function(data){
        console.log(data)
        doCheck(data)
    });

PHP

$email = $_POST["email"];
$url = $_POST["url"];
$obj = new stdClass();
$arr = array();
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $obj->email = "invalid";
} else {
    $obj->email = "valid";
}
//array_push($obj, $arr)
if (!filter_var($url, FILTER_VALIDATE_URL)) {
    $obj->url = "invalid";
} else {
    $obj->url = "valid";
}
print_r($obj);
//Object
//(
    //[email] => invalid
    //[url] => invalid
//)

2 个答案:

答案 0 :(得分:1)

你必须返回一个有效的javascript对象,所以,你应该使用一个JSON String ...

echo json_encode($obj);
exit;

,并在您的javascript:

$.post().then(function(data) { console.log(data); });

我认为数据已经被解码,但是,如果不是,你可以这样做:

data = JSON.parse(data);
console.log(data)

答案 1 :(得分:0)

尝试:

$arr = [email=>$obj->email,url=>$obj->url];
echo json_encode($arr);
exit;

 $.post("php/checkinput.php", {
        email: contactEmail.val(),
        url: contactWebsite.val()
    },success(function(data){
        console.log(data.email,data.url);
        doCheck(data)
    });