#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-формы.