У меня есть форма, в которой люди смогут добавлять одну и ту же часть элементов с помощью кнопки плюс, чтобы получилось нечто подобное:
<div id="person-1" class="person">
<input type="text" name="name-1" id="name-1" />
<input type="text" name="age-1" id="age-1" />
</div>
<!-- as of here, it's JS created -->
<div id="person-2" class="person">
<input type="text" name="name-2" id="name-2" />
<input type="text" name="age-2" id="age-2" />
</div>
<div id="person-3" class="person">
<input type="text" name="name-3" id="name-3" />
<input type="text" name="age-3" id="age-3" />
</div>
Мне уже удалось написать jquery-код, который позволяет мне снова добавлять те же элементы с новым идентификатором (имя-1, возраст-1, имя-2, возраст-2, имя-3, возраст-3, ...).
Конечно, Zend_Form не знает о name-2 и name-3 , поэтому он просто удаляет их, когда форма содержит ошибку и отображается снова. Я также не могу получить доступ к значению name-2 с помощью $form->getValue('name-2')
. Я должен идти по сырому $this->getRequest()->getPost()
.
Есть ли лучший способ, который я могу использовать для объединения Zend_Form и элементов формы на основе javascript (того же типа, что и элемент с жестким кодом).
Предостережение : В реальной проблеме это select
, а не input
. Выяснилось, что это может иметь значение (с ->setIsArray(true)
), но использование select
взорвет код примера.