0

我有一個控制器創建這樣一個Zend_Form的:插入自定義HTML到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。我怎樣才能實現這一點,同時有圖像上傳位內INSIDE表單的標記?

+2

的[添加一些HTML到Zend的形式]可能的複製(http://stackoverflow.com/questions/2566432/add-some-html-to -zend-forms) – Mogsdad

回答

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,因爲它是。

爲了更多地瞭解查看腳本裝飾

http://framework.zend.com/manual/en/zend.form.standardDecorators.html#zend.form.standardDecorators.viewScript

+0

實際上,我將使用其中的一個jQuery插件上傳圖像。我需要的是顯示上傳圖片的容器,以及上傳插件用於拾取和使用的輸入字段。我希望這是在我的表格中。 – Zorrocaesar

+0

@Zorrocaesar把它放在你的表單中間,就像我上面提到的那樣簡單地使用viewscipt裝飾器。 –

+0

比它接縫我不明白你的答案。 Form.phtml應該包含什麼?主窗體,還是新的裝飾器標記?看看我的示例代碼?我應該如何將你的答案與我的代碼結合起來? – Zorrocaesar