我遇到这种情况:
<select name="year" >
<?php
$today = date("Y");
for ($i=2005; $i<=$today; $i++){
echo "<option value=\"$i\">$i</option>";
}
?>
</select>
这将为我提供2005
到2011, ...
$this->addElement('select', 'department', array(
'label' => 'Year:',
'multiOptions' => array('A' => 'A', 'B' => 'B', 'C' => 'C',),
'value' => @$val->_listing_type_id
));
如何翻译我的for loop
脚本以在Zend Framework脚本中创建年份?我知道我可以使用Zend Framework中的第一个脚本,但我希望保持语法一致。
有什么想法吗?
答案 0 :(得分:3)
您可以使用range
创建从2005年到2011年的数字数组:
...
'multiOptions' => range(2005, 2011),
...
如果Zend确实期望键/值必须相同的数组,则可以使用array_combine
生成所需的数组:
'multiOptions' => array_combine(range(2005, 2011), range(2005, 2011))
这将产生array(2005 => 2005, 2006 => 2006, ..., 2011 => 2011)
。
答案 1 :(得分:0)
如果您对元素有引用,则修改元素会更容易。
$department = new Zend_Form_Element_Select('department');
$department->setLabel('Year:');
.....
$this->addElement($department);
然后您可以根据需要修改multiOptions数组:
$today = date("Y");
for ($i=2005; $i<=$today; $i++){
$department->addMultiOption($i, $i);
}