php - 后端如何在 Zend Framework 中查找 AjaxLink() 调用

标签 php ajax zend-framework jquery

我正在尝试在我的 Web 应用程序中创建一些 ajax 功能,但我无法让所有拼图 block 都适合:

我想添加一个链接,单击该链接将打开一个可由用户填写的新输入(文本)字段。在后端,我想对单击链接进行一些管理。

我想根据 Zend Framework 原则,使用 ajaxLink() 方法。谁能给我举个例子吗?我已阅读官方文档( ZendX_JQuery ),但它并不能完全帮助我。

我的前端( View )代码如下所示;

<?= $this->ajaxLink("Subscribe", $this->url(array('controller' => 'mycontroller', 'action' => 'action1', 'id' => $event['id'])),
                                        array("beforeSend" => "hide", 
                                              "update" => "#pb_" . $event['id'],
                                              'noscript' => false, 
                                              'method' => 'POST')); ?>  

我的后端代码如下所示。

public function action1Action()
    {
        if( !$this->loggedIn || ! $this->athlete) {
            $this->_redirect('index');
        }
        if(! $this->_request->isXmlHttpRequest())
        {
            //The request was NOT made with JS XmlHttpRequest
            die;
        }
        // Do some administration
        // (removed to make this easier in this example)

        $pb = new Zend_Form_Element_Text('PB');
        $pb->setLabel('PB:')
                  ->addValidator('StringLength', false, array(0,20))
                  ->setRequired(false);
        $renderText = $pb->render();

        return $renderText;

    }

我不断收到错误消息,指出给定方法想要查找 action1.phtml View 脚本。我也不确定我尝试生成表单输入元素是否能以这种方式工作。

我在 this question 中找到了一些答案,但它不是那么优雅(需要链接中的额外参数,并且您需要另一个 Controller ),我不喜欢。

最佳答案

您需要关闭此特定操作的 ViewRenderer。默认情况下,ZF 启用名为 ViewRenderer 的操作助手,它将传统命名的 View 脚本(在您的例子中为 action1.phtml)分配给特定的操作方法。由于您只是尝试返回一小段文本,而不是完整的站点 View ,因此不需要完整 View 渲染。幸运的是,这很容易。

 public function action1Action(){
     $this->_helper->viewRenderer->setNoRender();
     // the rest of your code
 }

完整的文档在这里: http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.viewrenderer

关于php - 后端如何在 Zend Framework 中查找 AjaxLink() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/992400/

相关文章:

php - 需要帮助来设计休假申请模块 php 的数据库

PHP Triple DES ECB 加密/解密的 Java 等效项

javascript - 对托管在单独服务器上的 WebAPI 的 Ajax GET 请求出现错误

php - Zend 中的 $adapter->query() 无法正常工作 - 字符串需要很长时间才能插入?

api - YouTube GData API

php 连接错误?

php - 如何将此 HTML 表格转换为 XML?

javascript - 从 ajax 调用的 PHP 无法处理多个调用

ajax - IE9中与SproutCore的跨源请求

php - 对于强大的、可扩展的开发平台,您会建议使用什么框架?