Hej,

Próbuję opakować checkboxy w formularzu w obsługę błędów. Wykorzystałem do tego znaną metodę "obejścia" tego problemu w postaci:

<input type="hidden" name="agreement" value="0">
<input type="checkbox" name="agreement" id="agreement" class="form-check-input" value="1">
if($this->form_validation->run()) {
            $data['success'] = true;
            $this->load->view('Success');
        } else {                
            foreach($this->input->post() as $key => $value) {
                if($this->input->post('agreement') == 0) {
                    $data['errors']['agreement'] = form_error('agreement');
                }
                $data['errors'][$key] = form_error($key);
            }
        }

W narzędziach developerskich widzę, że wartość 'agreement' (po wysłaniu formularza) przy braku zaznaczenia jest zerem, po zaznaczeniu pojawia się wartość podwójna, czyli:

agreement: 0
agreement: 1

Podobno tak może być i wartość z zerem jest ignorowana. Tylko problem polega na tym, że form_error('agreement') nie jest przypisywane do tablicy $data['errors']['agreement']. Jak dla testu wpisałem tam jakiś ciąg znaków, to wartość pojawiła się w tablicy. Docelowo powinno wyglądać to tak:

["agreement"] => string(ilość_znaków) "wartość_pola_form_error"

a wygląda tak:

["agreement"] => string(0) ""

Chyba, że ja coś robię źle i macie lepszy pomysł na obsługę checkboxów w formularzu. Siedzę nad tym od paru dni i nie mogę wyjść z podziwu, jakie to jest upierdliwe :)