【问题标题】:Zend AJAX with pure JavaScriptZend AJAX 与纯 JavaScript
【发布时间】:2011-05-05 15:20:45
【问题描述】:

我想使用纯 Javascript httprequest 将消息发布到 Zend 中的控制器/动作并返回一个响应,我可以使用回调函数在页面中处理该响应,这是经典的。

两个问题:

  1. 如何在考虑 Zend 施加的 baseurl 的情况下格式化 POST 字符串(在经典情况下,我指向一个 php 文件)。
  2. 我应该怎么做 - 最简单的可能(我知道有几种可能的实现) - 在 action 方法中,以便返回响应。

同样,没有 jQuery、JSON、原型或其他库。

用例如下:我有一个带有表单部分的视图。其中一个输入是选择下拉列表,我单击该列表中的一项,触发对控制器/动作的 Ajax 请求,并立即从服务器返回一个值,我用该值更新文本区域。

【问题讨论】:

  • JSON 不是库。它是一种类似于 XML 的数据格式。
  • 只是想知道您是否可以解释您对使用库的厌恶?它们是这样编写的,这样您就不必一遍又一遍地重写这样的“经典”js。
  • 关于 JSON:我想让 suer 不使用特殊的 Zend 对象。
  • 关于不使用库:这不是厌恶,只是对 JavaScriot 端其他相关处理的要求。

标签: javascript ajax zend-framework


【解决方案1】:

您发布到的网址完全取决于您的控制器和模块结构,因此我们很难为您提供详细的答案。但举个简单的例子,试试这个。

发帖至http://domain.com/index/textarea

控制器:IndexController.php

<?php

class IndexController extends Zend_Controller_Action {

    public function indexAction() {

    }

    public function textareaAction() {
        // if you are using layouts
        $this->_helper->layout->disableLayout();

        // process your post here
        $var = $this->_getParam('posted_var');

        $this->view->text =  '$var processed'; 
    }
}

视图:textarea.phtml

<?php

echo $this->text;

您的视图中的任何内容都将返回到您的 JavaScript。

为了更好地实现阅读AjaxContext switching,这将允许您使用 JSON,这意味着您可以删除视图文件,ZF 将简单地为您返回一个 JSON 编码的字符串。

【讨论】:

  • 谢谢。事实上,我按照您提到的相同模式进行了操作。 100%自己处理的时候最好不要使用AjaxContext;这是经验。所以布局禁用和 JSON 编码必须按照 action 方法中的文档来完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
相关资源
最近更新 更多