Codeigniter - проверка формы, преобразовывающая переменные записи из массива в строку «массив» - PullRequest
0 голосов
/ 05 сентября 2010

Я создаю HTML-форму с набором флажков для выбора нескольких категорий, используя этот формат:

<input type="checkbox" name="category[]" />

Итак, когда я публикую и print_r($_POST) для просмотра переменной и значений, я получаю:

Array
(
    [27] => on
    [28] => on
    [29] => on
)

После запуска $this->form_validation->run(); массив категорий становится «Массивом» в виде строки. Я считаю, что я сузил ее до функции "prep_for_form" в файле system / library / Form_validation.php, но похоже, что рекурсивная функция работает правильно.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2010

Это решение не сработало для меня, но здесь есть исправление: http://ellislab.com/forums/viewthread/156497/

0 голосов
/ 08 сентября 2010

Я понял это. При использовании метода $this->form_validation->set_rules() в правилах проверки (третий параметр) я установил его на trim|required. Я предполагаю, что функция обрезки обрабатывает фактический массив как строку «массив» и обрезает слово. Я просто удалил правило "trim" из моих правил проверки. например,

$this->form_validation->set_rules('category', 'categories', 'trim|required');

// when parsing an array (set of checkboxes, radio buttons, etc.) 
// - remove the "trim" validation
$this->form_validation->set_rules('category', 'categories', 'required');

Я надеюсь, что другие найдут это полезным.

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