Hey guys,
One more question about the dojo forms.
I've noticed that when I use the form I created in Firefox, hitting enter
while in a text box or something does not process the form, whereas in
Safari it does. However, it doesn't use my xhrPost routine (obviously
because it's not bound to it)
is there a reason why this might be browser dependent?
and.. is there a way to bind the "enter" key to my xhrPost routine?
thanks!
mapes911 wrote:
>
> Thanks a lot Mark!!
> This helped me a ton and I got my form to work for the most part :)
>
>
>
> MarkDNA wrote:
>>
>>
>> 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.
>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Zend_Dojo_Form---XHR-Post-tp19360770p22548594.html
Sent from the Zend Framework mailing list archive at Nabble.com.