PHP将JSON对象返回给Javascript [AJAX CALL]无效

时间:2016-04-01 09:19:33

标签: javascript php jquery json ajax

之前我已经进行过Ajax调用,并让它们返回JSON对象,这些对象有效,但我似乎不再让它工作了。

这是我的ajax电话:

function sendContactForm() {
var nameInput = $('#nameInput').val();
var emailInput = $('#emailInput').val();
var subjectInput = $('#subjectInput').val();
var msgInput = $('#msgInput').val();

$.ajax({
    // Make a POST request to getfile       
    url: "/service/contactmail",
    data: {
        nameInput: nameInput,
        emailInput: emailInput,
        subjectInput: subjectInput,
        msgInput: msgInput
    },
    method: "post",
    // And run this on success      
    success: function (data) {
        if (data.send === 1){
            // VERZONDEN
        }else if(data.send === 2){
            // VARS NIET INGEVULT
        }else{
            // IETS ANDERS FOUT
        }
        console.log(data);
    },
    error: function () {
        alert("fout");
    }
});
}

这是我的php函数:

private function sendContactForm() {
    $output = array(
        "test" => null,
        "send" => null
    );
    if ($this->fillVariables()) {
        $this->sendMail();
        $output['send'] = 1;
        return true;
    } else {
        $output['send'] = 2;
        return false;
    }
    header("Content-Type: application/json");
    echo json_encode($output);
}

但变量“data”的值为:“”(空字符串) 在我的php类中没有其他回声,所以这应该不是问题。

提前致谢,
Mats de Waard

1 个答案:

答案 0 :(得分:1)

return语句中的if正在停止执行此函数,然后才能将结果生成回页面。

private function sendContactForm() {

    $output = array(
        "test" => null,
        "send" => null
    );
    if ($this->fillVariables()) {
        $this->sendMail();
        $output['send'] = 1;
        //return true;
    } else {
        $output['send'] = 2;
        //return false;
    }
    header("Content-Type: application/json");
    echo json_encode($output);
}