Intereting Posts
Сортировка многомерного массива по заданным индексам – PHP? Проверка записей Crontab с PHP Каков наилучший способ создания «многоязычного» скрипта в php? В чем разница между Switch-Case и If-Else в PHP? Что я могу использовать вместо eval ()? preg_match получить несколько Не удалось установить конфигурацию безопасности FOSUserBundle + HWIOAuth PHP Подсчитайте раунд тысяч до уровня стиля K, как facebook Share. , , Кнопка кнопки Twitter Отключить налоги программно для определенной роли пользователя PHP Jquery Ajax вызывается сетью :: ERR_EMPTY_RESPONSE Акцентированные символы, хранящиеся в базе данных MySQL Временные учетные данные с использованием AWS IAM как изменить номер страницы, который можно использовать для внешних datatable с jquery? Поиск полного имени или имени или фамилии в базе данных MySQL с указанием имени и фамилии в отдельных столбцах Сообщение jquery ajax на странице, отличной от ssl, а текущая страница – ssl

Добавить HTML-заполнитель в Zend_Form

Я использую Zend_Form для формы заявки, используя этот код:

 class Form_ApplicationForm extends Zend_Form { public function init() { $this->setAction('/application/new') ->setMethod('post') ->setAttrib('id','application'); $name = new Zend_Form_Element_Text('name'); $name->setLabel('Your Name') ->setRequired(TRUE) ->addValidator('alpha', FALSE, array('allowWhiteSpace' => true)); $email = new Zend_Form_Element_Text('email'); $email->setLabel('Email Address') ->setRequired(TRUE) ->addValidator('EmailAddress'); $this->addElements(array($name,$email)); } } 

Я добавляю загрузчик флеш-файлов (swfupload) в эту форму, для которой требуется фрагмент HTML для работы, фрагмент выглядит следующим образом:

 <div id="swfupload-control"> <p>Upload upto 5 image files(jpg, png, gif), each having maximum size of 1MB(Use Ctrl/Shift to select multiple files)</p> <input type="button" id="button" /> <p id="queuestatus" ></p> <ol id="log"></ol> </div> 

Каков наилучший способ вставить это, чтобы он находился где-то внутри <form> который я вставляю в свой контроллер следующим образом:

 public function newAction() { $form = new Form_ApplicationForm(); if($this->_request->isPost()){ $data = $_POST; if($form->isValid($data)){ /// handle data here }else{ $form->populate($data); } } $this->view->form = $form; } 

Есть ли способ добавить местозаполнитель или подобное в Zend_Form , или это должно быть сделано с помощью декоратора или что-то в этом роде?

Благодарю.

Solutions Collecting From Web of "Добавить HTML-заполнитель в Zend_Form"

Вам нужно написать свой собственный элемент для этого, например My_Form_Element_SwfUpload вместе с визуализатором. См. Следующие руководства:

  • Самый простой Zend Form Decorator
  • Как сложить Decorators
  • Рендеринг декораторов формы Zend индивидуально
  • Создание составных элементов

Самый простой способ – сделать это в представлении:

Выбрав каждый элемент, вы можете распечатать его html. Вот один из способов сделать это:

 <form id="<?= $this->form->getId() ?>" action="<?= $this->form->getAction() ?>"> <? foreach ($this->form as $element): ?> <?= $element ?> <? if ($element->getName() == 'email'): ?> <div id="swfupload-control"> <p>Upload upto 5 image files(jpg, png, gif), each having maximum size of 1MB(Use Ctrl/Shift to select multiple files)</p> <input type="button" id="button" /> <p id="queuestatus" ></p> <ol id="log"></ol> </div> <? endif ?> <? endforeach ?> </form> 

Что он делает, так это то, что он печатает все элементы и помещает все, что вам нужно, после поля email . Если вы добавите или удалите поле из формы, этот код будет продолжать работать (конечно, он не удастся, если вы удалите поле email ).