PHP

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' : '';
}

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

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

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

<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>
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' : '';
    }
}

Радиокнопки

<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>
16 марта 2019
В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают в спам или...
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
Библиотека GD дает возможность работать с изображениями в PHP. Далее представлены примеры как изменить размер, вырезать...