Hi I am having an incredibly hard time with what should be a simple issue.
As of CodeIgniter 1.7, ‘$this->input->post();’ supported arrays but I cannot for get the values into the array for some reason. I have 7 check boxes that store into an array ‘services[]’ as you can see by this example view:
<?php $servicesdata = array (
'name' => 'services[]',
'value' => 'in_home_care',
);
echo form_checkbox($servicesdata, set_checkbox('services[]', 'in_home_care', FALSE)); ?>
I’m quite certain this is the correct fashion because the forms do validate nicely if something goes wrong. Now I start to have issues when storing the values. I have 7 columns that need to have some sort of value… at this point I don’t care but ideally it would be a boolean (a binary would work okay too). Here is what I have so far in my controller that everyone claims should work but just does not:
$c = new Client($servicesdata);
$c->first_name = $this->input->post('first_name', TRUE);
$c->in_home_care = $this->input->post('services[in_home_care]');
You can see the string I put for an example that works perfectly and inserts into a VARCHAR type while the array won’t go into the database whatsoever. I feel as if that I am missing something here – namely the ‘value’ in the array but I’m just not sure where to go from here. Any help would be much appreciated because the only method I can get to work sacrifices my checkbox validation! 🙁
If your checkbox is unchecked, the value of the checkbox will not be entered into the $_POST array. This is probably where you are having problems.
There are two ways around this. Either have one box checked by default, or use HTML like the following (which may or may not be best practice/valid, but has worked for me in the past).
In the event that the box is not checked, the value “foo” for the name value “services” will be passed to the $_POST array.