Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Zend Framework - Add new input element using javascript

I'm working on a project using Zend Framework.

I'm creating a form on which users can add a set of elements by pressing a + sign.

Zend framework uses subforms and decorators to get array of values from a form.

These will show when the page is displayed

How does the new fields created with Javascript integrate in that model?

like image 242
Nicolas de Fontenay Avatar asked Apr 12 '11 08:04

Nicolas de Fontenay


2 Answers

The best demo of dynamically adding fields on the client to a Zend_Form with which I am familiar comes from Jeremy Kendall:

http://jeremykendall.net/2009/01/19/dynamically-adding-elements-to-zend-form/

The upshot of the technique is to add/call a preValidation() method on the form to check the post for fields missing in the form. If it finds any such fields, then they are added to the form object. By the time isValid() and getValues() are called, all the Zend_Form_Element objects have already been attached to the form, so processing runs as normal.

like image 72
David Weinraub Avatar answered Nov 08 '22 10:11

David Weinraub


One suggestion would be to define all input fields that you want to provide using zend form.

But when the form is displayed you could hide certain fields and make them visible by clicking on +.

I think this is the most simple approach because for adding decorators and stuff you would need to change php files on client side and this is not possible.


Another suggestion, you could define several forms. Clicking on + redirectes the user to another form with an added field.

like image 32
UpCat Avatar answered Nov 08 '22 11:11

UpCat