2011-11-16 119 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); 
}