Проблема в том, что браузеры, по спецификации, не должны отправлять значения для непроверенных флажков.Флажки по определению являются необязательными полями.Каким должно быть значение, если оно не проверено?Ноль?0?HTML не имеет встроенного обработчика для этого использования флажков.
Но есть некоторые обходные пути.Мне нравится использовать javascript для включения скрытого поля с желаемым значением «unchecked».Например (с jQuery):
<input type="checkbox" name="foo" value="1" />
<script type="text/javascript">
$(function() {
$('input[name="foo"]').change(function() {
var $t = $(this);
if ( !$t.attr('checked'))
{
$t.after('<input type="hidden" name="foo" value="0" />');
}
else
{
$t.next().remove();
}
});
});
</script>
Это не столько проблема CI, сколько проблема "html form interface".