Мои флажки выглядят так
<div> <input type="checkbox" name="fruits[]" value="apple" <?php echo set_checkbox('fruits[]', 'apple'); ?> /> <input type="checkbox" name="fruits[]" value="banana" <?php echo set_checkbox('fruits[]', 'banana'); ?> /> <input type="checkbox" name="fruits[]" value="peach" <?php echo set_checkbox('fruits[]', 'peach'); ?> /> </div>
Я использую массив в именах, чтобы я мог заполнить текстовое поле (через jquery) со значениями отмеченных флажков. Я использую скрипт, найденный в stackoverflow.
function calculate() { var fruit = $.map($('input:checkbox:checked'), function(e, i) { return e.value; }); $('#fruits').val(fruit.join(',')); //adds values separated by comma to #fruits input } calculate(); $('div').delegate('input:checkbox', 'click', calculate);
Пока это работает, но у меня возникли проблемы с установкой правил проверки для флажков, потому что все они имеют одинаковое имя. Я пытался..
$this->form_validation->set_rules('fruits[]', 'Apple', 'required|xss_clean'); $this->form_validation->set_rules('fruits[]', 'Banana', 'required|xss_clean'); $this->form_validation->set_rules('fruits[]', 'Peach', 'required|xss_clean');
и использовал echo form_error('fruits[]');
для отображения ошибки проверки, но ничего не происходит. В конечном счете, я хочу отобразить флажок в состоянии, в котором он был отправлен, если ошибка возникнет в другом поле в моей форме. Вместо этого все флажки снимите флажок. Я не знаю, как это исправить.
ПОСЛЕ
Array ( [FRUITS] => Array ( [0] => apple [1] => banana [2] => peach )
это когда они проверяются