我有一个从这样的控制器创建的Zend_Form:
$form = new Zend_Form;
$form->setAction('/ad/add')->setMethod('post')->setAttrib('id', 'add_form');
$form->addElement('text', 'name', array(
'label' => 'Name',
'description' => 'Ex.: Samsung Galaxy Tab 10.1',
'validators' => array(
'alnum',
'notEmpty',
array('stringLength', array('min' => 3, 'max' => 150))
),
'required' => true
));
$form->addElement('textarea', 'description', array(
'label' => 'Description',
'description' => 'Make sure you give an accurate description of your item.',
'validators' => array(
'alnum',
'notEmpty',
array('stringLength', array('min' => 10, 'max' => 255))
),
'required' => true
));
$form->addElement('submit', 'Submit');
当我从视图中输出它时,它工作得很好,正如它应该使用dl和dd魔法渲染。
我现在想要的是在此表单中添加ajax图像上传功能。每个图像将由ajax上传,显示在div中,然后我的表单中的隐藏字段将填充上传文件的ID。如何将图像上传位设置在我的表单标记中?
答案 0 :(得分:2)
使用视图脚本装饰器。我假设您必须通过iframe上传图片。您可以将其放在视图脚本装饰器的phtml文件中。
在表单类中。
$dec = new Zend_Form_Decorator_ViewScript();
$dec->setViewScript('Form.phtml');
$this->setDecorators(array($dec,'form'));
在Form.phtml里面渲染元素
<?php echo $this->element->username ;?>
<?php echo $this->element->image ; ?>
并按原样添加iframe。
了解有关View脚本装饰器的更多信息