selected() – функция для отметки текущего значения в выпадающих списках

Функция позволяет сравнить два переданных в неё значения и в случае, если они совпадают, вывести или вернуть эту строку  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

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: