Отправка Zend_Form перестает работать при отображении с помощью групп отображения

#zend-framework #zend-form

#zend-framework #zend-form

Вопрос:

В моей Zend_Form есть только два элемента: текст и отправка.

Когда я визуализирую форму целиком, все работает нормально.

 echo $this->form;
  

Когда я рендерю форму по частям, она рендерится, но кнопка отправки ничего не запускает.

 echo $this->form->range;
echo $this->form->submit;
  

Рендеринг с группами отображения также оставляет кнопку отправки мертвой.

Есть идеи?

Заранее спасибо!

Комментарии:

1. Создаете ли вы $this->form <form> тег с правильным методом и действием, а не просто с помощью echo’ing? Если вы выводите поля формы по отдельности, вам также необходимо создать тег <form> самостоятельно. Возможно, опубликуйте весь или несколько кодов сценария просмотра для вашей формы.

2. но использование групп отображения должно обрабатывать теги <form> … даже тогда кнопка отправки все еще не работает…

3. посмотрите на сгенерированный HTML — у меня не было проблем с наборами полей / группами отображения до сих пор, используя Zend_Form — посмотрите на сгенерированный HTML, и в случае ошибки нам понадобится ваш Form.php , тоже

4. @krzysiek Я не уверен, что согласен с тем, что группы отображения должны обрабатывать теги формы, если вы изменяете свои элементы по отдельности. Как сказал Сэм, проверьте свой вывод html, покажите нам это, если необходимо, и опубликуйте еще несколько ваших сценариев просмотра для отображения формы, а также кода формы.

5. Тем временем я познакомился с декораторами 🙂

Ответ №1:

Когда вы повторяете объект формы, вызывается его волшебная функция __toString(), которая выводит html, сгенерированный зарегистрированными декораторами по умолчанию. Который включает в себя HTML-тег «» . Который завершает все элементы, добавленные в zend из . Поэтому, если вы повторяете отдельные элементы, вам нужно вручную обернуть элементы внутри тега html-формы.