Zend Form: получить элемент массива в скрипте вида - PullRequest
0 голосов
/ 28 ноября 2011

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

foreach ($languages as $language)
{
    // Add the title element
    $title = new Zend_Form_Element_Text($language);
    $title->setLabel($translate->_('News Title'))
          ->setBelongsTo('title');
    $this->addElement($title);

    // Add the content element
    $content = new Zend_Form_Element_Textarea($language);
    $content->setLabel($translate->_('News Content'))
            ->setBelongsTo('content');
    $this->addElement($content);
}

Если я отрисовываю форму обычным способом, она отлично работает:

echo $this->form;

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

foreach ($languages as $language)
{
    $this->form->getElement($language);
}

но он отображает только элемент 'content'. Я перезаписываю элемент title?

Спасибо

1 Ответ

0 голосов
/ 28 ноября 2011

Да, вы переопределяете элемент Заголовок.Параметр, который вы передаете new Zend_Form_Element_Text($language); ($language в вашем случае), должен быть уникальным.Фактически вы можете использовать его для идентификации и извлечения элемента, когда вам нужно.

Чтобы настроить параметр, вы можете сделать что-то вроде этого:

foreach ($languages as $language)
{
    // Add the title element
    $title = new Zend_Form_Element_Text('title-' . $language);

   ...
}
...