您好我已经创建了一个类似这样的setDecorator():
$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>
并创建两行,即第一行,select元素有两列。第一列包含标签名称,第二列包含选择框。现在我有七个这样的选择项目,并使用上面的装饰器,它创建一行有14个不同的列。但我想要做的是创建一个包含7列的7行选择元素的行。每列将包含两行,一行用于标签,第二行用于选择框。
简而言之,当前输出显示每个元素属性,如label和select in columns,我希望它们在行中,以便它们就像垂直对齐一个在另一个下面。 谢谢。
答案 0 :(得分: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')),
));