mapes911 wrote: > > Hi Matthew, > > If you use this method to attach the javascript routine to the submit > button, then in the foobar routine setup an xhrPost to process the form, > should I still have an action and a method setup in my controller when I > instantiate my form? > > Any help would be appreciated. > > Thanks >
I'm doing this exact thing, so let me see if giving an example would help your understanding. Sorry if this is a bit long folks. I've used ellipses to try and make it shorter. Controller File: (clients/controllers/IndexController.php) public function getContactEditForm($clientContactID = null){ ... $contactForm = new Zend_Dojo_Form(); ... $elements[] = $contactForm->createElement('button', 'ajaxActionContact', array( 'onclick' => "ajaxAdd('clientContacts','clientContactForm')", 'label' => 'Add Client Contact')); $contactForm->addElements($elements); return $contactForm; } public function editAction(){ ... [I've already set $this->view->info["contacts"]] $contactForm = $this->getContactEditForm(); $this->view->contactForm = $contactForm; } public function editajaxAction(){ ... [Do what logic is needed (add in this case), pull back new list of contacts] ... $this->view->contactList = $contactList; $this->_helper->layout->disableLayout(); $this->render('editClientContactPartial'); break; } View File:(clients/views/scripts/index/edit.phtml) <? $this->dojo()->javascriptCaptureStart() ?> var ajaxAdd = function(divID, formName) { var kw = { url: "<?=BASEURL."clients/index/editajax"?>", handleAs:"text", load: function(response){ dojo.byId(divID).innerHTML = response; }, error: function(data){ alert("An error occurred: " + data); }, timeout: 2000, form: formName }; dojo.xhrPost(kw); //Servlet get argement with doPost } <? $this->dojo()->javascriptCaptureEnd() ?> ... <div id="clientContacts"> <?=$this->partial('index/edit-client-contact-partial.phtml', array("contactList" =>$this->info["contacts"]))?> </div> So what we have here is a controller file with several actions. Included are ones to create the Dojo form (getContactEditForm), the edit action that fires when we first get to the page (editAction), and what I want to happen when the form is submitted via the XHR call (editajaxAction). When the page is first called, the form is created with a button that has an onclick action pointing to a simple js function that captures the form info and posts it to the editajaxAction function. The response is then loaded into the clientContacts div. Of note here, if you are using layouts and are updating a partial (like I am doing), you will need to disable layout rending in your ajax action, or the entire layout will render inside the partial! ($this->_helper->layout->disableLayout();) -Mark G. ----- Mark Garrett DailyDNA Arkadelphia, AR (Telecommuting to: Rogue River, OR) -- View this message in context: http://www.nabble.com/Zend_Dojo_Form---XHR-Post-tp19360770p22320137.html Sent from the Zend Framework mailing list archive at Nabble.com.