Наследование: extends jelix\forms\Builder\BuilderBase
Пример #1
0
 protected function fillSelect($ctrl, $value)
 {
     $data = $ctrl->datasource->getData($this->builder->getForm());
     if ($ctrl->datasource instanceof \jIFormsDatasource2 && $ctrl->datasource->hasGroupedData()) {
         if (isset($data[''])) {
             foreach ($data[''] as $v => $label) {
                 if (is_array($value)) {
                     $selected = in_array((string) $v, $value, true);
                 } else {
                     $selected = (string) $v === $value;
                 }
                 echo '<option value="', htmlspecialchars($v), '"', $selected ? ' selected="selected"' : '', '>', htmlspecialchars($label), "</option>\n";
             }
         }
         foreach ($data as $group => $values) {
             if ($group === '') {
                 continue;
             }
             echo '<optgroup label="' . htmlspecialchars($group) . '">';
             foreach ($values as $v => $label) {
                 if (is_array($value)) {
                     $selected = in_array((string) $v, $value, true);
                 } else {
                     $selected = (string) $v === $value;
                 }
                 echo '<option value="', htmlspecialchars($v), '"', $selected ? ' selected="selected"' : '', '>', htmlspecialchars($label), "</option>\n";
             }
             echo '</optgroup>';
         }
     } else {
         foreach ($data as $v => $label) {
             if (is_array($value)) {
                 $selected = in_array((string) $v, $value, true);
             } else {
                 $selected = (string) $v === $value;
             }
             echo '<option value="', htmlspecialchars($v), '"', $selected ? ' selected="selected"' : '', '>', htmlspecialchars($label), "</option>\n";
         }
     }
 }