Как правильно вывести чекбокс ?

236
05 декабря 2017, 22:16

Доброго времени суток !
Есть форма в которой есть чекбокс, суть работы формы проста, она отправляет значение чекбокса в базу данных. Состояние чекбокса меняет js скрипт, который при нажатии меняет класс чекбокса на checked и изменяет значение в input.
JS Код:

function superCheckbox(event, scope) {
    document.getElementById('tagsOn').checked = true
    if (event.target.nodeName == 'INPUT') return
    if (scope.classList.contains('Checkbox--checked')) {
        scope.classList.remove('Checkbox--checked')
        document.getElementById('tagsOn').value = '0'
    } else {
        scope.classList.add('Checkbox--checked')
        document.getElementById('tagsOn').value = '1'
    }
}

Моя реализация отображения чекбокса:

    <?php if ($view_tagsOn['tagsOn'] == false): ?>
    <label onclick=" superCheckbox(event, this) " class="Checkbox  ">
    <?php else: ?>
    <label onclick=" superCheckbox(event, this) " class="Checkbox Checkbox--checked ">
    <?php endif; ?>
        <span class="circle">
            <span class="in-circle"></span>
        </span>
        <input type="checkbox" id="tagsOn" name="tagsOn" value=" <?php echo $view_tagsOn['tagsOn']; ?> ">
        <div class="Input__label">Включены/Отключены</div>
    </label>

Но у неё есть баг, если отправить форму через кнопку не трогая чекбокс, то состояние чекбокса и значение в БД поменяются произвольно.

Вопрос:
Как правильно реализовать отображение чекбокса в форме (данные берутся из БД) ?

READ ALSO
Doctrine, как посчитать кол-во записей с join?

Doctrine, как посчитать кол-во записей с join?

Есть некий запрос на получение данных (запрос сокращен для удобства):

221
Зачем в PHP нужны фигурные скобки?

Зачем в PHP нужны фигурные скобки?

Какой смысл в данных фигурных скобках?

201
Интеграция компонентов Shortcode и SP Page Builder (Joomla)

Интеграция компонентов Shortcode и SP Page Builder (Joomla)

Есть сайт на котором все страницы сделаны через SP Page Builder, нужно вывести на главной странице модуль с карточками этих страницДля материалов...

274
Как проверить соответсвие запроса от joomla

Как проверить соответсвие запроса от joomla

Как проверить, что на сервер пришел запрос от конкретной joomla, например, если запрос от joomla1 то выполнить код1, если нет - что-то другое?

255