PHP функции для checked и selected

Две мини функции которые облегчают выделения полей select, radio и checkbox до и после отправки форм.
1

Селект отмечаются атрибутом selected="selected" или просто selected в HTML5.

/**
 * Выделение select option.
 * 
 * @param mixed $var
 * @param string $value
 * @return string
 */
function selected($var, $value) 
{
	if (!is_array($var)) {
		$var = explode(',', $var);
	}

	return (in_array($value, $var)) ? ' selected' : '';
}
PHP

Задаем значение переменной из БД или полученное из формы.

if (isset($_POST['field'])) {
	$field = $_POST['field'];
} else {
	$field = 0;
}
PHP

Подставляем переменную и значения в функции:

<form action="" method="post">
	<select name="field">
		<option value="0"></option>
		<option value="1" <?php echo selected($field, 1); ?>>Пункт 1</option>
		<option value="2" <?php echo selected($field, 2); ?>>Пункт 2</option> 
		<option value="3" <?php echo selected($field, 3); ?>>Пункт 3</option>	
	</select>
	
	<input type="submit" value="Отправить">
</form>
HTML

В случаи с множественным выбором (multiple) в переменной будет массив выбранных значений. У <option> все остается без изменений.

<form action="" method="post">
	<select name="field[]" multiple>
		<option value="0"></option>
		<option value="1" <?php echo selected($field, 1); ?>>Пункт 1</option>
		<option value="2" <?php echo selected($field, 2); ?>>Пункт 2</option> 
		<option value="3" <?php echo selected($field, 3); ?>>Пункт 3</option>	
	</select>
 
	<input type="submit" value="Отправить">
</form>
HTML
2

Эти элементы отмечаются атрибутом checked="checked" или checked.

/**
 * Отмечает CheckBox и radiobutton.
 * 
 * @param mixed $var
 * @param string $value
 * @return string
 */
function checked($var, $value = null) 
{
	if (is_null($value)) {
		return ($var) ? ' checked' : '';
	} else {
		if (!is_array($var)) {
			$var = explode(',', $var);
		}

		return (in_array($value, $var)) ? ' checked' : '';
	}
}
PHP

Радиокнопки

<form action="" method="post">
	<input type="radio" name="field" value="1" <?php echo checked($field, 1); ?>> Пункт 1
	<input type="radio" name="field" value="2" <?php echo checked($field, 2); ?>> Пункт 2
	<input type="radio" name="field" value="3" <?php echo checked($field, 3); ?>> Пункт 3

	<input type="submit" value="Отправить">
</form>
HTML

Чекбоксы

<form action="" method="post">
	<input type="checkbox" name="field[]" value="1" <?php echo checked($field, 1); ?>> Пункт 1
	<input type="checkbox" name="field[]" value="2" <?php echo checked($field, 2); ?>> Пункт 2
	<input type="checkbox" name="field[]" value="3" <?php echo checked($field, 3); ?>> Пункт 3

	<input type="submit" value="Отправить">
</form>
HTML
16.03.2019, обновлено 09.09.2019
17389

Комментарии

, чтобы добавить комментарий.

Другие публикации

Загрузка файлов на сервер PHP
В статье приведен пример формы и php-скрипта для безопасной загрузки файлов на сервер, возможные ошибки и рекомендации при работе с данной темой.
72209
+22
Примеры отправки AJAX JQuery
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
273944
+36
PHP-класс обертка для PDO
Класс значительно упрощает работу с PDO, сокращает код. Реализован на статических классах и не требует создание экземпляра класса.
23013
+11
Сортировка массивов
В продолжении темы работы с массивами поговорим о типичной задаче – их сортировке. Для ее выполнения в PHP существует множество функций, их подробное описание можно посмотреть на php.net, рассмотрим...
68220
+6
Шаблонизатор Smarty
Smarty это компилирующий обработчик шаблонов для PHP позволяющий отделить логику и HTML-верстку веб-приложения.
26946
+5
Генерация паролей в PHP
В PHP есть несколько функций для генерации случайного числа, это rand(), mt_rand() и random_int().
22752
+11