Вот мой код контроллера для настройки правил:
// Previous address(es)
$this->form_validation->set_rules('prev_house_number[]', 'House Number', 'trim|alpha_numeric');
$this->form_validation->set_rules('prev_abode[]', 'Abode', 'trim');
$this->form_validation->set_rules('prev_house_name[]', 'House Name', 'trim');
$this->form_validation->set_rules('prev_address_line_1[]', 'Address Line 1', 'required|trim');
$this->form_validation->set_rules('prev_address_line_2[]', 'Address Line 2', 'trim');
$this->form_validation->set_rules('prev_city[]', 'Town/City', 'required|trim');
$this->form_validation->set_rules('prev_county[]', 'County', 'trim');
$this->form_validation->set_rules('prev_postcode[]', 'Postcode', 'required|max_length[9]|trim');
$this->form_validation->set_rules('prev_country[]', 'Country', 'trim');
$this->form_validation->set_rules('prev_months[]', 'Previous Months', 'trim|integer');
$this->form_validation->set_rules('prev_years[]', 'Previous Years', 'trim|integer');
Пользователь может ввести до 5 предыдущих адресов, например:
код за полем адресной строки 1 выглядит следующим образом:
<div class="input w100 f-left c-none">
<input type="text" class="address_line_1 postcode_prev_address_1" id="prev_address_line_1[]" name="prev_address_line_1[]" value="<?php echo set_value('prev_address_line_1[]');?>"/>
<label for="prev_address_line_1[]">Address Line 1 <span class="required">*</span></label>
</div>
Вот проблема: Если предположить, что у меня введено 5 адресов, и в форме проверка не пройдена, все пять областей ввода будутправильно заселена, как и ожидалось. Однако проверка CodeIgniter не будет работать с массивными входами .
Вот прямой снимок экрана после проверки:
Как видите,хотя он заполняет форму правильными значениями, он не применяет к ним правила проверки и, похоже, не распознает их существование внутри контроллера.
Что я могу сделать?
Спасибо!
Джек