Функция позволяет сравнить два переданных в неё значения и в случае, если они совпадают, вывести или вернуть эту строку selected='selected'
(обратите внимание на одинарные кавычки и на пробел в начале).
selected( $selected, $current = true, $echo = true )
- $selected
- Первое сравниваемое значение, обычно – значение атрибута
value
текущей опции списка. - $current
- Текущее значение. По умолчанию равно
true
или1
. - $echo
- Вывести или вернуть значение. По умолчанию выводит.
Пример
Чтобы вам был понятен смысл этой функции, давайте с вами заценим пример. Первоначально наш список вылядит допустим так:
<select> <option value="val1" <?php if ( $value == 'val1' ) echo 'selected="selected"'; ?>>Первый элемент списка</option> <option value="val2" <?php if ( $value == 'val2' ) echo 'selected="selected"'; ?>>Второй элемент списка</option> <option value="val3" <?php if ( $value == 'val3' ) echo 'selected="selected"'; ?>>Третий элемент списка</option> <option value="val4" <?php if ( $value == 'val4' ) echo 'selected="selected"'; ?>>Четвертый элемент списка</option> <option value="val5" <?php if ( $value == 'val5' ) echo 'selected="selected"'; ?>>Пятый элемент списка</option> </select>
Теперь попробуем немного преобразовать этот код:
<select> <option value="val1"<?php selected( $value, 'val1' ) ?>>Первый элемент списка</option> <option value="val2"<?php selected( $value, 'val2' ) ?>>Второй элемент списка</option> <option value="val3"<?php selected( $value, 'val3' ) ?>>Третий элемент списка</option> <option value="val4"<?php selected( $value, 'val4' ) ?>>Четвертый элемент списка</option> <option value="val5"<?php selected( $value, 'val5' ) ?>>Пятый элемент списка</option> </select>
Стало немного поприятнее, но ещё есть к чему стремиться, да? А теперь сделаем так:
$options = array( 'val1' => 'Первый элемент списка', 'val2' => 'Второй элемент списка', 'val3' => 'Третий элемент списка', 'val4' => 'Четвертый элемент списка', 'val5' => 'Пятый элемент списка', ); echo '<select>'; foreach( $options as $val => $label ) { echo '<option' . selected( $val, $value, false ) . '>' . $label . '</option>'; } echo '</select>';
Во всех примерах переменная $value
– это какое-то текущее значение.
Источник: misha.blog