I think this is leaning more towards a user experience sort of question, but I want to mention one thing before I go into that. If you're searching things that you have already loaded into the page, then using JS will probably be your best bet since you'll be searching records that the server side has already fetched and given to the page. Now if that isn't the case, then I think your issue is more UX.
If the content your searching isn't already on the page, then you could have the call to the search on the client side, but you'll still need some server-side logic to fetch the records for the client to render. The big question is, do you want the user to sit through a page load, or would you rather render the results on the same page?
At work, we have both types of searches being used. We have a search box to search for users and it retrieves minimal amount of info about the users and constructs a dropdown based on the text in the input. But you can also submit that search, and you will be directed to a page that displays more information about the search results.
This is really less of a, which one is better for performance/developments/etc. and more about how you want the user to interact with your search. I believe that either way, you'll need some sort of server-side code, but how you display that is completely up to you and your UX goal.