I have a problem repopulating a set of checkboxes after an unsuccessful form validation returns the user back to the same form. Dropdown menus and text inputs could be repopulated, but not checkboxes!
Here’s a snippet of the code for the checkboxes:
<td>
<?php echo form_checkbox('ambience[]', 'casual', set_checkbox('ambience[]', 'casual')); ?> Casual <br />
<?php echo form_checkbox('ambience[]', 'romantic', set_checkbox('ambience[]', 'romantic')); ?> Romantic <br />
<?php echo form_checkbox('ambience[]', 'outdoor', set_checkbox('ambience[]')); ?> Outdoor / Alfresco <br />
<?php echo form_checkbox('ambience[]', 'trendy', set_checkbox('ambience[]')); ?> Hip & Trendy <br />
<?php echo form_checkbox('ambience[]', 'vibrant', set_checkbox('ambience[]')); ?> Vibrant <br />
<?php echo form_checkbox('ambience[]', 'up_scale', set_checkbox('ambience[]')); ?> Upscale <br />
</td>
The code snippet for text input which successfully repopulated is:
<?php echo form_dropdown('price_range', $options, set_value('price_range')); ?>
Any ideas? I’m really confused why set_checkbox does not work as advertised.
You
set_checkboxcalls are wrong. When you’re using an array like “ambience[]” in form_checkbox, you don’t want to include the square brackets ([]) in yourset_checkboxcall. The other problem is that set_checkbox requires a second parameter which you’ve only included in the first 2 checkboxes.The set_checkbox should always be like this:
Where ‘value’ is the second parameter of the
form_checkboxcall. Like this: