Обновление div через ajax без макета - PullRequest
0 голосов
/ 11 апреля 2011

В моем приложении Zend Framework у меня есть div на боковой панели. В основной части у меня есть список аккордеонов.

Как мне обновить содержимое div через ajax, не перезагружая весь контент, нажимая на список аккордеона, который генерируется из db? Как обрабатывать операторы контроллера / действия?

Спасибо за любую помощь ... С уважением

Ответы [ 3 ]

0 голосов
/ 11 апреля 2011
$('select-all-accordion-pieces').click(function (event) {
    event.preventDefault(); // if you're clicking on links or something similar
    var dataAboutTheAccordionPieceClicked = $(this).whatever;
    $('select-your-div-here').load('your-controller-url', dataAboutTheAccordionPieceClicked );
});

РЕДАКТИРОВАТЬ: пост, указывающий на учебник по Zend Framework, вероятно, лучше, но это будет работать в любой ситуации - это просто jquery.

0 голосов
/ 11 апреля 2011

Учитывая, что вы, возможно, захотите применить логику к полученному запросу, чтобы вернуть только необходимый небольшой объем данных - выполните ajax-вызов контроллера / действия.

Получить данные в действии.

Верните его с:

$this->_helper->json($data);

Это отключает разметку и viewrenderer, т. Е .:

$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
echo json_encode(data);

Пусть javascript обрабатывает возвращаемые данные.

0 голосов
/ 11 апреля 2011

Это то, что вы хотите:

Zend Framework 1.9 учебное пособие 13: Введение в ZendX_Jquery, часть 1 - ZendX

и

Zend Framework 1.9 учебное пособие 14: ajax запрашивает часть 1 - Пример аккордеона

Обычно в методе init вашего контроллера вам нужен переключатель контекста для включения json

$contextSwitch->addActionContext ( 'index', 'json' )->initContext ();

В вашем javascript вы можете написать свою логику ajax и изменить DOM, чтобы применить ваш новый ответ. В следующий раз будьте более конкретны и дайте нам код.

...