Я использую 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
, или это нужно сделать с помощью декоратора или чего-то в этом роде?
Спасибо.