2011-01-19 12 views
0

私は1000+ id-> nameオプションがアルファベット順にソートされた選択ボックスを持つzendフォームを持っています。 レンダリングしてブラウザで見ると、Chと入力するとそのオプションに移動します。選択ボックスのドロップダウンリストに 'selected'値を設定します - 最初の文字に基づいて

フォームが初期化された後、最初の数文字で選択する値を設定する方法はありますか?換言すれば、$form->getElement('name')->setSelected('Ch')またはそれに類するもの。

は私がsetValue(34)と私は

答えて

1

34は、単にコードを自分で書いたIDを持っているものを選択するように名前を設定することができることを知って

class My_Form_Element_Select extends Zend_Form_Element_Select{ 
/** 
* Sets the the first option to start with certain letters to be selected 
* @param string $string The first few letters to search for 
*/ 
public function setSelected($string){ 
    $string = strtolower($string); 
    $options = $this->_getMultiOptions(); 
    $length = strlen($string); 
    foreach($options as $value => $option){ 
     if($string == strtolower(substr($option,0,$length))){ 
      $this->setValue($value); 
      break; 
     } 
    } 
    return $this; 
} 
関連する問題