2010-11-12 3 views
0

В форме, которую я строю с использованием Zend_Form в проекте Zend Framework, мне нужно иметь переменное количество текстовых областей. Мне нужно, чтобы они были размещены с нотами массива, поэтому я могу их использовать.Использование имен массивов для имен элементов формы в Zend_Form

Без Zend_Form, это легко сделать, добавив квадратные скобки в имени прокручиваемых:

<textarea name="mytext[]">one</textarea> 
<textarea name="mytext[]">two</textarea> 

Я не могу выполнить это с помощью Zend_Form:

$t = new Zend_Form_Element_Textarea("mytext[]"); 
$t->setValue("one"); 
$myForm->addElement($t); 
$t = new Zend_Form_Element_Textarea("mytext[]"); 
$t->setValue("two"); 
$myForm->addElement($t); 

Два прокручиваемых визуализируются в вид с атрибутом name, установленным в «mytext».

Как я могу использовать обозначения массива в этой ситуации?

+1

Тот же вопрос, что и http://stackoverflow.com/questions/4145198/requires-a-check-box-array-using-zend-form-element-checkbox –

+2

Возможный дубликат [Как настроить форму Zend для использования Array Notation] (http://stackoverflow.com/questions/1928551/how-do-configure-zend-form-to-use-array-notation) – Gordon

+0

@Enrico: объекты textarea не наследуются от Zend_Form_Element_Multi, поэтому они не есть метод addMultiOptions(), упомянутый в ответе на связанный с вами вопрос. –

ответ

1

Если вы хотите добавить форму непредсказуемое количество textarea, я думаю, вы должны использовать sub_forms.

$subForm = new Zend_Form_SubForm(); 
$subForm->addElement(....); 

$form->addSubForm($subForm, 'subform'); 

Zend_Form (Sub Form)

С уважением.

Смежные вопросы