2011-11-16 46 views
0

我有这种情况:如何将脚本转换为Zend Framework?

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

这将给我多年来2005通过2011, ...

在Zend Framework的一个下拉看起来就像这样:

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

任何想法?

回答

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)

+0

感谢你们两个,这两个解决方案工作,虽然这个人是我现在需要的速度更快。再次感谢 – Patrioticcow

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