AJAX,如果JSON-response = X - >做行动

时间:2017-08-03 10:08:36

标签: javascript php jquery json ajax

我正在网站上工作,现在我需要制作AJAX表单。我现在的代码确实在数据库中插入了params,但现在我陷入了以下困境。我希望我的代码在JSON状态成功后隐藏表单。在MVC工作。这是我的代码: (我已经让代码中不重要的部分消失了) AJAX:

$("#submitAssignment").on("click", function () {
    $.ajax({
        type: "POST",
        url: "/set/new/ass",
        async: true,
        data: data,
        success: function (data) {
            console.log("Het item is toegevoegd");
            var err = jQuery.parseJSON(data);
            sendAlert.createAlert(err.return, err.type);
            if (jsonObj.status == 'success') {
                $("#submitAssignment").hide();
            }
        }
    });

});

控制器:

else {
    $UserModel = new UserModel();
    if ($UserModel->placeAssignment($title, $uploadable, $level, $points, $description)) {
        $err['data'] = array("status" => "success", "type" => "success", "return" => "De opdracht is toegevoegd! Joepie :D" );
    } else {
        $err['data'] = array("status" => "failed", "type" => "danger", "return" => "Er is iets misgegaan!");
    }
}
exit( $err['endpoint'] = json_encode( $err['data'], $options = 0 ) );

我想在状态=成功后隐藏的部分,不会隐藏,这就是我的问题。我已经搜索过其他问题了,但是aint得到了成功。在这种情况下,我做错了什么?

1 个答案:

答案 0 :(得分:1)

这种情况下的问题是我在ajax代码中使用了错误的回调。我使用了JSONobj.status,但它需要是:err.status,因为我正在以这种方式处理它。 @timothyGroote给出了这个答案,现在它有效。 我的ajax代码现在:

$.ajax({
        type: "POST",
        url: "/set/new/ass",
        async: true,
        data: data,
        success: function (data) {
            console.log("Het item is toegevoegd");
            var err = jQuery.parseJSON(data);
            sendAlert.createAlert(err.return, err.type);
            if (err.status == 'success') {
                $("#submitAssignment").hide();
            }
        }
    });