當用戶使用select字段更改類別時,我只想在視圖上顯示具有該類別的請求 - 並使用AJAX請求執行此操作。我想將從Controller返回的對象傳遞給AJAX的成功處理程序到視圖($ requests變量,如下面的代碼所示),並讓視圖更新顯示的請求。(Laravel)如何使用AJAX將變量返回到.blade.php視圖?
數據正在返回到AJAX的成功處理程序正確,因爲我可以console.log該對象,但它不會更新$ requests變量。
我該如何做到這一點,我在這裏失去了什麼?
表示從DB
@extends('layouts.app')
@section('content')
{{-- Requests --}}
<div class="container">
<div class="row requests-row">
<div class="col-md-12">
<h2>New requests</h2>
<select name="category" class="form-control category">
<option value="" disabled selected>Choose a category...</option>
<option value="Electronics and Computers">Electronics and Computers</option>
<option value="Hardware">Hardware</option>
</select>
<hr>
<p class="block"></p>
@foreach ($requests as $request)
@include('components.requests')
@endforeach
</div>
</div>
</div>
@endsection
AJAX請求
$('.category').change(function() {
$.ajax({
method: "GET",
url: "/category",
data: $(this).serialize(),
success: function(data) {
console.log(data);
return data;
},
error: function(data){
console.log("Error: " + data);
},
});
});
處理該AJAX請求在後端控制器的請求的視圖
public function changeCategory(Request $request)
{
$posts = Post::where('category', $request->category)->get();
return $posts;
}
如果你不是尋找一個代碼編寫服務,請問你會期望你發佈到完成的代碼?你目前在AJAX成功處理函數中會發生什麼? – alaric
沒有ajax,你可以提交'category'的值到當前頁面,並在你的模板中循環'$ posts'變量 –
是的,但是我不想重新加載頁面 - 這就是爲什麼我選擇去使用ajax而不是僅使用重新呈現具有更新變量的視圖的路線。 –