【发布时间】:2013-09-22 10:42:08
【问题描述】:
有人可以给我推荐一个在 Zend 1 中使用 Ajax 的很好的初学者教程。我一直在网上搜索其中的一些教程,但找不到可以理解的。有些人说你必须创建一个 . json.phtml 文件用于 json 响应,其他的则没有。我对 Zend Framework 1 的所有这些 ajax 调用感到非常困惑。非常感谢。
【问题讨论】:
标签: ajax zend-framework layout frameworks
有人可以给我推荐一个在 Zend 1 中使用 Ajax 的很好的初学者教程。我一直在网上搜索其中的一些教程,但找不到可以理解的。有些人说你必须创建一个 . json.phtml 文件用于 json 响应,其他的则没有。我对 Zend Framework 1 的所有这些 ajax 调用感到非常困惑。非常感谢。
【问题讨论】:
标签: ajax zend-framework layout frameworks
确实有一些基本的东西。
就是这样。好吧,不完全是,但基本上是的!
前提是你有$data中的数据:
$this->_helper->json($data, true);
将返回 JSON 响应。文档是here。
现在还有一个 Context Switch 和 AjaxContentHelper 的概念:
ContextSwitch 操作帮助器旨在帮助根据请求返回不同的响应格式。 AjaxContext 帮助器是 ContextSwitch 的一个特殊版本,有助于返回对 XmlHttpRequests 的响应。
要启用其中任何一个,您必须在控制器中提供有关哪些操作可以响应哪些上下文的提示。如果传入请求指示给定操作的有效上下文,则助手将:
- 禁用布局(如果启用)。
- 设置备用视图后缀,实际上需要单独的上下文视图脚本。
- 为所需的上下文发送适当的响应标头。
- (可选)调用指定的回调来设置上下文和/或执行后处理。
类似这样的:
$contextSwitch = $this->_helper->getHelper('contextSwitch');
$contextSwitch->setDefaultContext('json');
$contextSwitch->addActionContext('index', array('xml','json'))->initContext();
$contextSwitch->addActionContext('get', array('xml','json'))->initContext();
$contextSwitch->addActionContext('post', array('xml','json'))->initContext();
$contextSwitch->addActionContext('put', array('xml','json'))->initContext();
$contextSwitch->addActionContext('delete', array('xml','json'))->initContext();
$contextSwitch->addActionContext('head', array('xml','json'))->initContext();
我认为你真的不需要教程。您所需要的只是对 Web 内部如何工作的基本知识以及阅读Zend Documentation。不管怎样,这里有一些tutorial on ContextSwitch。
【讨论】: