Если вы хотите сделать это с помощью AJAX, то вам просто нужно, чтобы ваш клиентский скрипт (я полагаю, javascript) инициировал запрос к URL, соответствующий поиску, который вы хотите выполнить. Вы, вероятно, настроили бы контроллер поиска / действие для использования переключателя контекста так, чтобы он доставлял результаты в формате (я полагаю, json или xml) в формате, используемом вашим клиентским кодом.
Недостатками этого подхода являются: выполнение двух полных запросов, включая накладные расходы HTTP, для получения данных; Вы не получите ничего для клиентов без JS.
В качестве альтернативы пусть индексный скрипт представления вызывает помощник представления действия - вызывается с помощью $this->action($action, $controller, $module, $params)
- для непосредственного получения данных. Опять же, вы можете использовать переключатель контекста или флаг param, чтобы не предоставлять HTML-код для полного макета сайта, а только для результатов поиска.
Наконец, вы можете перенести эту функцию поиска в класс обслуживания, чтобы и контроллер индекса, и контроллер поиска могли использовать его независимо. Затем контроллер просто присваивает эти результаты представлению обычным образом.
Лично я склонен к сервисному подходу.