2012-03-21 70 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