using jquery to post data in zend framework

后端 未结 2 705
终归单人心
终归单人心 2020-12-07 00:05

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

相关标签:
2条回答
  • 2020-12-07 00:28

    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.

    0 讨论(0)
  • 2020-12-07 00:44

    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:

    1. Make the form submit a GET request rather than a POST
    2. Submit the form back to the same page, perform your remote API call, and render the results.

    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.

    0 讨论(0)
提交回复
热议问题