Як-то я вже розповідав про бібліотеку jQuery-PHP, і ось зовсім недавно виявив, що вона ідеально поєднується з Zend Framework’ом.

Щоб сильно не закопуватися, буде найкраще навести приклад реалізації, почну з сервер-сайда, а саме зі зв’язки контролера і екшену:

require_once ‘Zend/Controller/Action.php’;
/**
* Ajax Controller
*/
class AjaxController extends Zend_Controller_Action
{
/**
* index Action
* @return void
*/
public function indexAction()
{
// check is AJAX request or not
if (!$this->getRequest() -> isXmlHttpRequest()) {
$this->getResponse()-> setHttpResponseCode(404)
-> sendHeaders();
$this->renderScript(’empty.phtml’);
return false;
}
// requery php library
require_once ‘jQuery.php’;
// assign to div with id = ‘test’ current time
jQuery(‘div#test’)->html(date(‘H:i:s’));
}
}

Трохи поясню – у першому умови перевіряється дійсно запит здійснено за допомогою AJAX’a, далі підключаємо бібліотеку jQuery і юзаєм її.

Шаблон index.phtml для описаного вище екшену буде виглядати наступним чином:

require_once ‘jQuery.php’;
// only jQuery response, nothing more
jQuery::getResponse();

Ще нам знадобитися внести зміни в клієнтську частину, а саме підключити бібліотеку в контролері який потребує AJAX’е, наприклад так:

$this->view->headScript()->appendFile(‘/public/js/jquery.js’);
$this->view->headScript()->appendFile(‘/public/js/jquery.php.js’);

І безпосередньо додати виклик функції $.php({},{}) для будь-якої події:

click me;

Як бачите, можна перенаправити запит на будь-який модуль, контролер і екшен (див. опис хэлпера Url), а так само передати дані через GET або POST (другий параметр функції $.php якраз для цього і призначений).