Селект отмечаются атрибутом 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' : '';
}
Задаем значение переменной из БД или полученное из формы.
Подставляем переменную и значения в функции:
<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>
В случаи с множественным выбором (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>
Эти элементы отмечаются атрибутом 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' : '';
}
}
Радиокнопки
<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>
Чекбоксы
<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>