我有一个简单的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')); ?>
感谢您的帮助
答案 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;
}