Задайте значение «выбрано» в раскрывающемся списке выбора поля - на основе первой буквы - PullRequest
0 голосов
/ 19 января 2011

У меня есть Zend-форма, в которой есть поле выбора с опциями 1000+ id-> name, отсортированными по алфавиту.При рендеринге и просмотре его в браузере, если вы наберете Ch, он полностью перейдет к этой опции;

Есть ли способ, которым я могу установить значение для выбора, используя первые несколько букв послеформа была инициализирована?Другими словами $form->getElement('name')->setSelected('Ch') или подобное;

Я знаю, что с помощью setValue(34) я могу установить выбранное имя с идентификатором 34.

1 Ответ

1 голос
/ 19 января 2011

Только что сам написал код

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