If you check it out I have a bit of a problem with the following, I have a form (webbooks.phtml) in which I use a jQuery function
http://pastebin.com/7Pbd43fC -webbo
This is an example of basic usage of calling Zend Controller with ajax/json and get response to the same phtml, so you can use it in your code.
In .phtml file I have javascript which call (in IndexController) the action ajaxAction():
<script language = "Javascript">
var param1 = 'first'; //or get value from some DOM element
var param2 = 'second'; //or get value from some DOM element
jQuery.ajax({
url: '/default/index/ajax',
type: 'POST',
data: {param1: param1, param2:param2 },
dataType: "json",
success: function(result){
var return1 = result.return1;
var return2 = result.return2;
// return1 and return2 is value from php file.
// fill out DOM element or do the windows.location()
}
});
</script>
In IndexController the ajaxAction() should get request:
public function ajaxAction(){
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$param1 = $this->_request->getParam('param1');
$param2 = $this->_request->getParam('param2');
// DO THE OTHER STUFF AND LOGIC HERE
$results = array(
'return1' => 'value1',
'return2' => 'value2'
);
$this->_response->setBody(json_encode($results));
}
In any way I suggest to listen the @jakenoble and look at(learn) Context Switching in Zend.
If the result of your client-side call is just a redirect to another page, then why not do it all on a single controller/action/viewscript, as follows:
Even if you want to do it in two actions - one to show the form, another to display the results - I don't see what value you are getting from the AJAX call.
Am I missing some other requirement?
Doing it with the current structure, you'd have to save the results of the remote API call into the session and then retrieve it after the redirect. Do-able, but it strikes me as unnecessary if it can be done in a single action.