前提・実現したいこと
PHP/Laravelを使用してインスタグラムのようなWEBアプリを作成しています。
表示する投稿をチェックボックス(タグなど)が押されるたびに、各チェックボックスが
選択されているかを判断して対象の投稿のみに更新したいと考えています。
チェックボックスがクリックされるとajaxが反応し、Laravel側Controllerのメソッドを
呼び出し、Viewを返すことを実現したいです。
ajaxとの通信は問題なくできていますが、画面の更新がされない状況です。
また、Chromeの検証にて確認したところ、
Network>Previewでの表示は想定通りとなっています。
どなたかご教授いただけると幸いです。
該当のソースコード
PHP
1**home.blade.php** 2<script> 3 var check = function() { 4 //チェックボックスの値を取得 5 store = document.getElementById("tweets-topbar-under-store"); 6 parsonal = document.getElementById("tweets-topbar-under-parsonal"); 7 8 //typeId→表示するツイートを絞り込むための変数 9 if (store.checked == true && parsonal.checked == true){ 10 typeId = 3; 11 } else if(store.checked == true && parsonal.checked == false){ 12 typeId = 1; 13 } else if(store.checked == false && parsonal.checked == true){ 14 typeId = 2; 15 } else { 16 typeId = 4; 17 } 18 19 $.ajax({ 20 headers: { 21 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 22 }, 23 url: "/type", 24 type: "POST", 25 data: { typeId: typeId }, 26 async: false, 27 28 }).done(function (results){ 29 //ここまでは問題ないが画面は変わらない 30 alert('通信成功'); 31 32 }).fail(function(jqXHR,textStatus,errorThrown){ 33 alert('ファイルの取得に失敗しました。'); 34 console.log("ajax通信に失敗しました") 35 console.log(jqXHR.status); 36 console.log(textStatus); 37 console.log(errorThrown.message); 38 }); 39 } 40</script> 41 42 43**HomeController.php** 44 //ajax用。VIEWの店舗・個人が変更されたら動く。チェックに対応する投稿のみを返す 45 public function typeSelect(Request $request){; 46 if($_POST["typeId"] == 1 || 2){ 47 //ここでチェックされている投稿のみを取得(最初はall()で全部表示している) 48 $tweets = Tweet::where('type', $_POST["typeId"])->get(); 49 return view('home', [ 50 'tweets' => $tweets, 51 ]); 52 } 53 else if($_POST["typeId"]==3){ 54 $tweets = Tweet::all(); 55 return view('home', [ 56 'tweets' => $tweets, 57 ]); 58 } 59 60 61**Web.php** 62 Route::post('/type', 'HomeController@typeSelect'); 63 64
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/30 10:51
2020/06/30 21:16
2020/07/01 01:24
2020/07/01 01:57
2020/07/01 02:57
2020/07/01 03:05
2020/07/01 04:02