如何将脚本翻译成Zend Framework?

时间:2011-11-16 19:40:19

标签: php forms zend-framework

我遇到这种情况:

<select name="year" >
    <?php 
        $today = date("Y"); 
        for ($i=2005; $i<=$today; $i++){
            echo "<option value=\"$i\">$i</option>";
        }
    ?>
</select>

这将为我提供20052011, ...

的年份 在zend框架中,下拉列表将如下所示:

$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中的第一个脚本,但我希望保持语法一致。

有什么想法吗?

2 个答案:

答案 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);
 }