2017-04-14 7 views
0

セッションにカテゴリとサブカテゴリIDを保存する単純なAjaxコードがあります。これら2つの変数はセッションで保存されますが、次の再ロード時には両方の値がセッションに存在しません。 このセッションの問題はajaxでのみ発生します。私はセッションを保存したり取り出したりしている他のポイントを持っていて、それは作業ファイルです。 ここに私のajax呼び出しがあります。私は両方のケースで、ファイルとデータベースセッションが、同じ問題を使用してみましたがajaxで設定したときにLaravelセッション変数がページ読み込み後に削除される

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(); 
} 

を次のように

$("#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の呼び出しで実行される関数です。私はlaravel 5.3 を使用しています。セッションクラスも私が使用しているクラスでインポートされていて、この関数を使用するとエラーはありません。

答えて

1

なぜなら、私はphp ajax関数でdie()を持っていたからです。あなたのajax呼び出しにdie()があるとき、なぜセッションを削除したのか分かりません。しかし私はdie()を取り除き、それは完全に働いた。

関連する問題