gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:32:20 25 4
gpt4 key购买 nike

我正在尝试在我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com