У меня есть форма, поля которой динамически добавляются как таковые:
function addFieldRow() {
$('.form-container').append('
<div><input type="text" name="name[1]"></div>
<div>
<select name="choice[1]">
<option value="red">red</option>
// . . .
</select>
</div>
// . . .
');
}
Затем я передаю их соответствующему контроллеру CodeIgniter с объявленными правилами массива form_validation:
$this->form_validation->set_rules('name[]', 'text field', 'required');
// . . . other fields' rules
Проблема в том, что если какая-либо из динамически добавляемых форм имеет ошибку, она исчезает во время загрузки представления. Я хочу знать, как я могу сохранить динамически добавляемые поля формы после выполнения проверки с ошибками:
if ($this->form_validation->run() == FALSE) {
// do stuff to preserve the dynamically created fields to show their errors
$this->load->view('user_addresses_view');
}
Лучшее решение
Я нашел решение сохранить эти динамически добавленные элементы, используя ajax
для подключения к соответствующему контроллеру формы в среде CodeIgniter. Этот метод может:
- Выполняйте проверку на стороне клиента и на стороне сервера без обновления страницы.
- Поскольку страница не обновляется, все эти динамически добавляемые элементы формы никуда не денутся!
Решение от james246