Как я могу реализовать jquery в своем приложении Zend Framework нестандартным способом? - PullRequest
3 голосов
/ 19 февраля 2009

Как я могу реализовать jquery в моем приложении Zend Framework нестандартным способом.

  • добавление jquery.js ок
  • добавление скрипта ок
  • отправка данных POST на контроллер ок
  • обработать POSTed данные ок
  • отправить 'AjaxContext' ответить клиенту теперь нормально (спасибо)

Я впервые использую jquery, что я делаю не так?

Ответы [ 3 ]

8 голосов
/ 19 февраля 2009

С самого начала лучшей практикой, чтобы Zend отвечал на запросы ajax без полного макета, была проверка переменной, доступной через заголовки запросов. Согласно документации многие клиентские библиотеки, включая jQuery, Prototype, Yahoo UI, MockiKit, отправляют правильный заголовок, чтобы это работало.

if($this->_request->isXmlHttpRequest())
{
    //The request was made with via ajax
}

Однако современная практика и то, что вы, вероятно, ищете, теперь должны использовать одного из двух новых помощников:

Что делает процесс значительно более элегантным.

class CommentController extends Zend_Controller_Action
{
    public function init()
    {
        $ajaxContext = $this->_helper->getHelper('AjaxContext');
        $ajaxContext->addActionContext('view', 'html')
                    ->initContext();
    }

    public function viewAction()
    {
        // Pull a single comment to view.
        // When AjaxContext detected, uses the comment/view.ajax.phtml
        // view script.
    }

Обратите внимание: Этот современный подход требует , что вы запрашиваете формат для запуска контекста. Это не очень очевидно в документации и несколько сбивает с толку, когда вы получаете странные результаты в браузере.

/url/path?format=html

Надеюсь, мы найдем обходной путь. Ознакомьтесь с полной документацией для получения более подробной информации.

2 голосов
/ 19 февраля 2009

Убедитесь, что вы используете $(document).ready() для любых событий jQuery, которые касаются DOM. Кроме того, проверьте консоль ошибок javascript / parser. В Firefox это находится в Tools-> Error Console. И если он еще не установлен, я настоятельно рекомендую Firebug .

0 голосов
/ 19 февраля 2009

Это должен был быть комментарий, не могу, пока ...
Это не имеет ничего общего с комбинацией ZF + Jquery.
Сначала попробуйте прото того, что вам нужно, с помощью простого файла PHP. Нет фреймворка, просто Jquery и прямо вперед, грязный php.
О, и не забудьте отследить, что происходит с FireBug.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...