Zend Framework и AJAX

В данном посте расскажу о том, как лучше и правильнее интегрировать AJAX в Zend Framework, а точнее в его MVC-компоненты. Для реализации клиентской части скрипта используется javascript библиотека json.js.

Введение

AJAX-запрос похож на обычную загрузку страницы. Те же заголовки запроса и ответа. На практике же приходится подключать дополнительно альтернативный модуль вывода данных (к примеру, чтобы возвращать данные в XML или JSON формате). Покажу на примере AJAX запроса для получения информации по навыку. Работать будем с использованием хэлпер AjaxContext, делающий нашу работу с AJAX’ом ещё удобнее и проще. Хэлпер (помощник, helper) – один из компонентов фреймворка, помогающий выполнять какие-то определённые действия. Принцип действия AjaxContext заключается в том, что он заменяет шаблон вида на нужный нам формат вывода.

Серверная часть

На сервере, собственно, необходимо пошаманить с контроллером соответствующим.

Хелпер отслеживает ajax-запросы и отключает для них авторендеринг скриптов вида. Затем, после выполнения action’а, хэлпер кодирует все данные, переданные в наш view-класс, в формат JSON и выводит на экран (т.е. передаёт браузеру). Таким образом, нам больше не нужно задумываться на стороне сервера о том, откуда поступил запрос и как его нужно обработать, это всё перекладывается на плечи разработчиков клиентской части скрипта. Теперь в случае ajax-запроса мы получим JSON-кодированные данные.

Клиентская часть

Остаётся только JS код для отправки запроса и обработки полученных результатов написать.