Если флажок не установлен, данные для него не отправляются. (Если он установлен, атрибут значения отправляется). Попытка чтения $_POST['checkbox']
приведет к ошибке PHP (если вы не используете empty()
или isset()
, которые являются специальными языковыми конструкциями).
this->input->post('checkbox')
вернет FALSE
, если данные флажка не установлены, т.е. если они не были проверены. Боюсь, нет способа изменить это значение. Если вы хотите другое значение, вам нужно будет вручную сравнить FALSE и использовать другое значение.
Наконец, когда вы отправляете FALSE в базу данных, используя API доступа к БД CodeIgniter, она преобразуется в «0». Это будет хорошо работать для логического столбца в базе данных. Когда вы читаете логический столбец, вы получите тот код, который предпочитает ваша база данных для TRUE, независимо от того, что вы отправили изначально. (С возможным исключением sqlite, который слабо типизирован, немного похож на PHP).