Как добавить элемент формы Zend в определенную позицию, после того как объект формы уже создан?

Я создал один класс user_form, который расширяет форму zend, он имеет 4 элемента username, password, hash для csrf и, наконец, кнопку submit.

Создание объекта user_form визуализирует все эти четыре элемента.

После проверки входа в действие контроллера я проверяю неудачные попытки, и после некоторого исправления количества неудачных попыток я хочу добавить Zend Captch перед кнопкой отправки.

Я добавил элемент капчи, и он был добавлен после кнопки отправки.

Как я могу добавить элемент Zend в определенной позиции? Или как я могу добавить его перед кнопкой отправки?

Кроме того, дайте мне знать, что способ, которым я делаю, является правильным? Жду твоего ответа. Спасибо...

2 ответа

Решение

Дайте вашим элементам порядковые номера с самого начала. Добавьте номер заказа к элементу капчи, когда вы добавите его.

$element->setOrder(10);

или же

$form->addElement('text', 'username', array('order' => 10));

Смотрите также руководство Zend_Form.

Вы можете использовать setOrder()как сказал Маркус, или когда вы визуализируете свою форму в вашем скрипте просмотра, вы можете визуализировать каждое поле отдельно:

// .phtml
<form id="form" action="<?= $this->escape($this->form->getAction()); ?>" method="<?= $this->escape($this->form->getMethod()); ?>">
<table>
  <?= $this->form->username ?>
  <?= $this->form->password ?>
  <?= $this->form->hash ?>
  <?= $this->form->captcha ?>
  <?= $this->form->submit ?>
</table>
</form>
Другие вопросы по тегам