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

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

Select option

Селект отмечаются атрибутом 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

CheckBox и RadioButton

Эти элементы отмечаются атрибутом 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 632

Поделится

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

Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
Селект с множественным выбором (select multiple) весьма не удобен, при выборе часто забываешь нажимать сtrl и все...
В продолжении темы работы с массивами поговорим о типичной задаче – их сортировке. Для ее выполнения в PHP существует...
В данном примере описано как вывести многоуровневый список checkbox и radio button из БД с помощью PHP функций...