由ajax

时间:2017-04-14 18:50:24

标签: php ajax laravel session laravel-5.3

我有一个简单的ajax代码,用于保存会话中的类别和子类别ID。这两个变量保存在会话中,但在下次重新加载时,会话中不存在这两个值。 此会话问题仅适用于ajax。我有其他点我存储和检索会话,它是工作文件。 这是我的ajax电话。

    $("#search-select-category").on("click", function () {
    console.log("sending ajax");

    $.ajax({
        type: "POST",
        url: $("#select-category-search").prop('action'),
        data: {
            "_token": $("#select-category-search").find('input[name=_token]').val(),
            "category_id": $("input[name='category-search']").val(),
            "subcategory_id": $("input[name='subcategory-search']").val(),
        },
        success: function (response) {
            var response = JSON.parse(response);
            console.log(response.message);
            if(response.error) {
                console.log("error is here");
                $(".search-category-error span").text(response.message);
                $(".search-category-error").show();
            }
            else {
                console.log("selection is good");
                $(".search-category-error").slideDown();
                $(".select-category-modal").modal('hide');
            }
        }
    });
});

以及在ajax调用上执行的函数如下

public function ajax_select_category_search(Request $request) {

    $error = false;
    $message = "";

    if (empty($request->category_id) || empty($request->subcategory_id)) {
        $error = true;
        $message = "Category or Sub Category is not selected";
    }

    if ($error == false) {
        session(['category_search' => $request->category_id]);
        session(['subcategory_search' => $request->subcategory_id]);
    }

    $response['error'] = $error;
    $response['message'] = $message;

    echo json_encode($response);
    die();
}

我尝试过使用文件和数据库会话,但两种情况都有同样的问题。我正在使用laravel 5.3 会话类也在我正在使用的类中导入,并且在使用此函数时没有错误。

1 个答案:

答案 0 :(得分:3)

原因是我在php ajax函数中有一个die()。我不知道为什么在你的ajax调用中有一个die()时删除添加的会话。但是我删除了die()并且它工作得很好。