Zend Framework ajaxLink params没有被发送到ctr / action方法

时间:2009-10-02 21:25:29

标签: zend-framework

我有一个简单的ajaxLink到控制器。它没有params,但是当我添加一个参数时,我得到一个错误:

Warning: Missing argument 1 for Ez_ContactsController::testyAction()

params是必需的,我在ZF创建的jquery中看到它们。这是生成的JS(/ ez是我的模块):

$(document).ready(function() {
    $('a.ajaxLink1').click(function() { $.post('/ez/contacts/testy', {"param1":"1","param2":"456"}, function(data, textStatus) { $('#testy').html(data); }, 'html');return false; });
});

这是我的ajaxLink:

<div id="testy"></div>
<?= $this->ajaxLink("Example 2",
"/ez/contacts/testy",
array('update' => '#testy',
      'class' => 'someLink'),
array('param1' => '1',
      'param2' => '456')); ?>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我找到了答案。 您不直接将变量发送到函数,它们通过GET或POST发送。

以下是我如何获得变量。 $ param1 =(int)$ this-&gt; _request-&gt; getParam('param1'); $ param2 =(int)$ this-&gt; _request-&gt; getParam('param2');

这是整个功能: public function testyAction(){

//The request was made with JS XmlHttpRequest
$this->_helper->viewRenderer->setNoRender(); //Will not render view
    $this->_helper->Layout->disableLayout(); // Will not load the layout
$param1 = (int)$this->_request->getParam('param1');
$param2 = (int)$this->_request->getParam('param2');

    echo 'testy 123. params sent were: '.$param1.', '.$param2; 

}