2009-10-02 8 views
0

J'ai un ajaxLink simple à un contrôleur. Il fonctionne sans les params, mais quand j'ajoute un param je reçois une erreur:Paramètres Zend Framework ajaxLink non envoyés à la méthode ctr/action

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

Les params sont nécessaires et je les vois dans la jquery que ZF crée. voici la JS qui obtient généré (/ ez est mon module):

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

Voici mon ajaxLink:

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

Merci pour toute aide

Répondre

0

J'ai trouvé la réponse. Vous n'envoyez pas les variables directement à la fonction, elles sont envoyées via GET ou POST.

Voici comment j'ai obtenu les vars. $ param1 = (int) $ this -> _ request-> getParam ('param1'); $ param2 = (int) $ this -> _ request-> getParam ('param2');

est ici toute la fonction: la fonction publique 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; 

}