First, I'd switch to VueJs
<select @change="change" v-model="order">
<option value="">- Default -</option>
<option value="ASC" >ASC</option>
<option value="DESC" >DESC</option>
</select>
<div v-for="product in products">
@{{ product.price }}
</div>
new Vue({
el: '#app',
data: {
products: [],
order: '',
},
mounted () {
axios.get('/products').then(response => (this.products = response.data))
},
methods: {
change() {
axios.get('/products?sortByPrice=' + this.order).then(response => (this.products = response.data))
}
}
})
Route::get('/products', function (\Illuminate\Http\Request $request) {
$order = $request->sortByPrice;
if ($order == 'ASC' or $order == 'DESC')
{
return \App\Product::orderBy('price', $order)->get();
}
return \App\Product::all();
});
Something like this)