Example #1
0
 public function render($attr = array())
 {
     parent::mergeAttr($attr);
     $selected = isset($attr['value']) ? A_Html_Form_Select::_toArray($attr['value']) : array();
     unset($attr['value']);
     $values = A_Html_Form_Select::_toArray($attr['values']);
     if (empty($attr['labels'])) {
         $attr['labels'] = $values;
     }
     $this->removeAttr($attr, 'values');
     $labels = A_Html_Form_Select::_toArray($attr['labels']);
     $this->removeAttr($attr, 'labels');
     if (isset($attr['multiple']) || count($selected) > 1) {
         $attr['name'] .= '[]';
         $attr['multiple'] = 'multiple';
         // multiple sends array
     }
     $str = '';
     foreach ($values as $value) {
         $str .= '<option value="' . $value . '"';
         if (in_array($value, $selected)) {
             $str .= ' selected="selected"';
         }
         $str .= '>' . current($labels) . "</option>";
         next($labels);
     }
     return parent::render('select', $attr, $str);
 }