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. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.