Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

kankai's avatar

How to sort items after search items

Hi all,

I'm doing a ecommerce website that can search item, and after that i need to add in sort option in it. But i dun know how to add in previous request input to sort function.

In my view i have two form

<form action="{{ url('shop/'.$cat.'/search') }}" method="GET">
    <div id="price_range" class="noUi-target noUi-ltr noUi-horizontal noUi-background">
    </div>
                  <input style="width: 30%; margin-right: 10px;" type="number" readonly="true" name="lowerprice" id="price-value-lower" value="0" class="example-val">
                  <input style="width: 30%;" type="number" readonly="true" name="upperprice" id="price-value-upper" value="100" class="example-val">
    </div>              
        <button class="aa-filter-btn" type="submit">Filter</button>
</form>

 <form action="{{ url('shop/'.$cat.'/search') }}" method="GET">
                  <label for="">Sort by</label>
                  <select name="" onchange="this.form.submit()">
                    <option value="1" selected="Default">Default</option>
                    <option value="2">Name</option>
                    <option value="3">Price</option>
                    <option value="4">Date</option>
                  </select>
</form>

And in my item views i have include paginate link which is something like this

<div class="aa-product-catg-pagination">
  {{ $data->appends(request()->input())->links() }}
</div>

my shopController

$data = product::where('ori_price','>',$request->lowerprice)->where('ori_price','<',$request->upperprice)->where('status',0)->paginate(1);

return view('interface.shop', compact('cat','data','totalItem'));

Is there anyway to pass previous request to sort form? or i need to join two form to one single form? Thanks

0 likes
2 replies
Snapey's avatar

The sort order has to be part of your search form. It can't be it's own form as that would require an additional route and controller method.

Or use datatables and sort in the client

Or take a different approach again and use Laravel Livewire. See the guest posting on this site by Caleb

https://laracasts.com/series/guest-spotlight/episodes/3

Please or to participate in this conversation.