使用jquery在zend框架中发布数据
如果你看看我有以下问题,我有一个表格(webbooks.phtml)我在其中使用jQuery函数
http://pastebin.com/7Pbd43fC -webbooks.phtml(实际上是一个菜单,实际上是一个视图,您可以在其中键入要搜索的产品)
http://pastebin.com/q8RJWdb7 -webbookscontroller(这是一个控制器,它使用API根据webbooks.phtml提供的字符串/数字等从SQL数据库中获取数据)
http://pastebin.com/vuy9GUvP -index.phtml(这是应该查看结果的视图空间。)
这是我得到的数组:
{"book_title":"Bioethics in the 21st Century", "id":"1424", "isbn":"978-953-307-270-8"," unix_name":"bioethics-in-the-21st-century", "visible_online":"1"}
我可以看到这个数组
die((json_encode)$result);
我想让这个数组进入我的视图(index.phtml)? 我是PHP的新手,我正在尝试做一些可能不好的做法,可能是不可能的。 我基本上只是在一起黑客攻击测试我的知识,看看PHP能做些什么。 这可能吗?
这是使用ajax / json调用Zend Controller并获得对相同phtml的响应的基本用法示例,因此您可以在代码中使用它。
在.phtml文件中我有javascript调用(在IndexController中)动作ajaxAction():
在IndexController中,ajaxAction()应该得到请求:
public function ajaxAction(){ $this->view->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $param1 = $this->_request->getParam('param1'); $param2 = $this->_request->getParam('param2'); // DO THE OTHER STUFF AND LOGIC HERE $results = array( 'return1' => 'value1', 'return2' => 'value2' ); $this->_response->setBody(json_encode($results)); }
无论如何,我建议听@jakenoble并查看(学习)Zend中的Context Switching。
如果客户端调用的结果只是重定向到另一个页面,那么为什么不在单个控制器/ action / viewscript上完成所有操作,如下所示:
- 使表单提交GET请求而不是POST
- 将表单提交回同一页面,执行远程API调用并呈现结果。
即使你想在两个动作中做到这一点 – 一个用于显示表单,另一个用于显示结果 – 我看不出你从AJAX调用获得了什么价值。
我错过了其他一些要求吗?
使用当前结构,您必须将远程API调用的结果保存到会话中,然后在重定向后检索它。 可行,但如果可以在一个动作中完成,那就让我感到不必要了。