PHP pages with multiple conditionally displayed search elements
I think your general approach of moving towards reusable components is one that is very popular across a broad range of applications. Since you pretty much only have trivial code in your question, I will talk more towards the design.

You mentioned a polling feature for search history.  This doesn't make sense to me. You know exactly when a user performs a search, so I don't know why you would need to poll for this information. In initial page load you can load into initial page source, but for asynchronous AJAX searches you should be able to simply update the history in response to the search events.

Be very careful when designing your components to decide what content needs to be loaded on initial page view vs. what content should be loaded asynchronously.

I also find it to be an odd pattern to have this route/switch construct when you are doing nothing but including a separate file anyway. Why not make these different end points on your API?

What is the difference between basic search and advanced search? Should this really be treated as two separate components?