я могу управлять результатом ajax с файлом phtml? - PullRequest
0 голосов
/ 13 апреля 2011

я хочу управлять результатом ajax в файле phtml, это мой код просмотра, на котором есть ссылка ajax:

<div id="container"></div><?php echo $this->ajaxLink("Link Name",
                      $this->baseUrl() ."/admin/index/first/format/json",
                      array('update' => '#container',
                            'method' => 'POST')); ?>

это первый код действия:

public function firstAction()
{
    if($this->_request->isPost()) {         
        // pretend this is a sophisticated database query
        $data = array('red','green','blue','yellow');
        $jsonData = Zend_Json::encode($data);
        $this->view->data = $jsonData;
    }
}

этоfirst.phtml код:

<ul><?php foreach ($this->data as $color) : ?><li><?= $color ?></li><?php endforeach; ?></ul>

но есть проблема!результат отображения ajax выглядит следующим образом:

{"data": "[\" red \ ", \" green \ ", \" blue \ ", \" yellow \ "]"}

и он не использует файл first.phtml!

есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 01 мая 2011

ответ: я нашел ответ с помощью Марцина;)

public function firstAction()
{
    if($this->_request->isPost()) {         
        // pretend this is a sophisticated database query
        $data = array('red','green','blue','yellow');
        Zend_Layout::getMvcInstance()->disableLayout(); 
        //$jsonData = Zend_Json::encode($data);
        $this->view->data = $data;
    }
}

и я удаляю каждый параметр json, форму ajaxlink и метод init

$ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('first', 'html')
                //->addActionContext('format', 'json')
                ->initContext();

теперь все правильно:)

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