Массив флажков Codeigniter - PullRequest
0 голосов
/ 30 мая 2011

Мои флажки выглядят так

<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[]'); для отображения ошибки проверки, но ничего не происходит. В конечном итоге я хочу отобразить флажок в том состоянии, в котором он был отправлен, если в другом поле в моей форме произойдет ошибка. Вместо этого все флажки сняты. Я не уверен, как это исправить.

POST

Array ( [FRUITS] => Array ( [0] => apple [1] => banana [2] => peach )

это когда они проверены

1 Ответ

2 голосов
/ 30 мая 2011

Попробуйте без использования квадратных скобок [], поэтому просто «фрукты».

[] - это просто сказать браузеру «публиковать эти значения как массив, а не как отдельное значение, потому что они являются группой», но в PHP вы просто подходите к нему как к любому другому значению, а именно. $ _POST [ 'плоды'].

Надеюсь, это поможет,

Всего наилучшего, NWN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...