Zend Framework - добавить новый элемент ввода с помощью javascript

Я работаю над проектом с использованием Zend Framework.

Я создаю форму, в которую пользователи могут добавлять набор элементов, нажимая знак +.

Zend framework использует подчиненные формы и декораторы для получения массива значений из формы.

Они будут отображаться при отображении страницы

Как новые поля, созданные с помощью Javascript, интегрируются в эту модель?


person Nicolas de Fontenay    schedule 12.04.2011    source источник


Ответы (2)


Лучшая демонстрация динамического добавления полей на клиенте в Zend_Form, с которой я знаком, принадлежит Джереми Кендаллу:

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

Результатом этого метода является добавление / вызов метода preValidation() в форме для проверки сообщения на наличие полей, отсутствующих в форме. Если такие поля обнаруживаются, они добавляются к объекту формы. К моменту вызова isValid() и getValues() все объекты Zend_Form_Element уже прикреплены к форме, поэтому обработка выполняется в обычном режиме.

person David Weinraub    schedule 12.04.2011
comment
Очень красивый и конкретный пример :) Спасибо! - person Nicolas de Fontenay; 13.04.2011
comment
С удовольствием, рад, что это помогло. ;-) - person David Weinraub; 13.04.2011
comment
@DavidWeinraub выше ссылка не работает :). Итак, есть ли обновленная ссылка на это? - person Sourabh; 22.09.2018
comment
@Sourabh Как ни странно, сайт Джереми плохо себя ведет с префиксом www. Я изменю ссылку и оповестю его. - person David Weinraub; 24.09.2018
comment
@DavidWeinraub Спасибо за помощь и, пожалуйста, обновите, как только это будет сделано. - person Sourabh; 24.09.2018
comment
@DavidWeinraub Спасибо, я пробовал это, но это довольно старое и не сработало для меня. Если вы можете изучить мой обновленный вопрос и предоставить мне решение, которое будет высоко оценено stackoverflow.com/questions/52490466/ - person Sourabh; 25.09.2018

Одно из предложений - определить все поля ввода, которые вы хотите предоставить, с помощью формы zend.

Но когда форма отображается, вы можете скрыть определенные поля и сделать их видимыми, нажав +.

Я думаю, что это самый простой подход, потому что для добавления декораторов и прочего вам нужно будет изменить файлы php на стороне клиента, а это невозможно.


Другое предложение, вы можете определить несколько форм. Щелчок по + перенаправляет пользователя в другую форму с добавленным полем.

person Upvote    schedule 12.04.2011