Chào các bác. E có 3 bảng trong DB:
Type: id, name
Level: id, name
Question: id, content, type_id, level_id
Em đã thực hiện được chức năng filter sau khi bấm nút Lọc. Giờ em muốn khi filter thì kết quả tự động đổ ra table mà ko cần nút “Lọc” thì phải làm thế nào ạ
Đây là code có button Lọc của e:
FilterController:
public function filter(Request $request){
$types = Type::all();
$levels = Level::all();
$model = Question::where('id', '>', 0);
if (isset($request->type))
$model = $model->where('type_id', $request->type);
if (isset($request->level))
$model = $model->where('level_id', $request->level);
$data = $model->paginate(999)->appends(request()->query());
return view('filter', compact( 'data', 'request', 'types','levels'));
}
filter.blade.php
<form method="get">
<select name="type">
<option value="">All Types</option>
@foreach ($types as $item)
<option value="{{ $item->id }}" @if ($request->type == $item->id) selected @endif>{{ $item->name }}</option>
@endforeach
</select>
<select name="level">
<option value="">All Levels</option>
@foreach ($levels as $item)
<option value="{{ $item->id }}" @if ($request->level == $item->id) selected @endif>{{ $item->name }}</option>
@endforeach
</select>
<button type="submit" class="btn btn-primary">Lọc</button>
</form>
<table border="1">
<tr>
<th>ID</th>
<th>Content</th>
</tr>
@foreach ($data as $q)
<tr>
<td>{{ $q->id }}</td>
<td>{{ $q->content }}</td>
</tr>
@endforeach
</table>