2012-03-21 62 views
0

您好我已經創建了一個setDecorator(),它是這樣的:如何在zend php中使用setDecorators創建表格行和列。

$timeSu->setDecorators(array('ViewHelper', 'Description', 'Errors', 
     array(
      array('data' => 'HtmlTag'), 
      array('tag' => 'td', 'class' => 'input')), 
     array('Label', 
      array('tag' => 'td')), 
     array(
      array('blah'=>'HtmlTag'), 
      array('tag' => 'tr', 'openOnly' => true, 
        'placement' => end_Form_Decorator_Abstract::PREPEND)) 

    )); 

同樣地,我有相同的裝飾爲更多的元素。現在,這給了我像

<form enctype="application/x-www-form-urlencoded" action="" method="post"> 
<div></div><div></div><div></div><div></div><div></div><table id="targetform"><tbody><tr><td id="timeSu-label"><label for="timeSu" class="required">Sunday:</label></td><td class="input"><select name="timeSu[]" id="timeSu" multiple="multiple" size="5" class="target_input"><option value="NULL" label="Select" selected="selected">Select</option><option value="00:00" label="00:00">00:00</option>.....</select></td><tr><td colspan="2" align="center"><input type="submit" name="submit" id="submit" value="Submit" class="target_button"></td></tr></tbody></table></form> 

,並與兩列中選擇元素創建了兩行,即第一行。第一列包含標籤名稱,第二列包含選擇框。現在我有七個這樣的選擇項目,並使用上面的裝飾器相同,它創建了一個與14個不同的列的行。但是我想要做的是創建一個包含7個選擇元素的7列的行。每列將包含兩行,一列用於標籤,另一列用於選擇框。

總之,目前的輸出顯示每個元素屬性像標籤和列中選擇,我希望他們在行中,以便他們將像垂直對齊之一。 謝謝。

回答

1

附加裝飾等爲每個元素:

$this->addElement($this->createElement('select', 'fieldname1') 
     ->setLabel('Label') 
     ->setDecorators(array(
      'ViewHelper', 
      array(array('filedtd' => 'HtmlTag'), array('tag' => 'td')), 
      array(array('fieldtr' => 'HtmlTag'), array('tag' => 'tr')), 
      'Label', 
      array(array('labeltd' => 'HtmlTag'), array('tag' => 'td')), 
      array(array('labertr' => 'HtmlTag'), array('tag' => 'tr')), 
      array(array('table' => 'HtmlTag'), array('tag' => 'table')), 
      array(array('wholetd' => 'HtmlTag'), array('tag' => 'td')), 
     ))); 

和裝飾的形式:

$this->setDecorators(array(
      'FormElements', 
      'Form', 
      array(array('wholerow' => 'HtmlTag'), array('tag' => 'tr')), 
      array(array('table' => 'HtmlTag'), array('tag' => 'table')), 
     )); 
+0

感謝您的幫助。 – Naphstor 2012-03-22 21:00:28