Допустим, у меня есть HTML-форма, которая показывает группы, и в каждой группе у меня есть имя и несколько пользователей. Ниже приведен пример HTML-структура, упрощена, чтобы содержать только соответствующие элементы:CodeIgniter и проверка имен элементов многомерных форм
Group Name: <input name='group[0][name]' />
User 1: <input name='group[0][users][0]' />
User 2: <input name='group[0][users][0]' />
User 3: <input name='group[0][users][0]' />
<hr />
Group Name: <input name='group[1][name]' />
User 1: <input name='group[1][users][0]' />
User 2: <input name='group[1][users][0]' />
User 3: <input name='group[1][users][0]' />
Я прочитал всю структуру в CodeIgniter, используя $this->input->post('group');
и жизнь хороша.
Я хочу добавить проверку формы с помощью специальной функции. Если бы я это сделать:
$this->form_validation->set_rules('group[]', 'Group', 'callback_verifyGroupData');
моя verifyGroupData($group_data)
функция вызывается один раз для каждой группы. В этом примере он вызывается дважды, каждый раз, имея данные группы, переданные в Здесь фиктивная функция сейчас:.
function verifyGroupData($data) {
log_message('info','KRYSTODO: verifyGroupData data ' . print_r($data,true));
$this->form_validation->set_message('verifyGroupData', 'This is not entirely checked yet.');
return false;
}
Проблема заключается в том, что мне нужно, чтобы быть в состоянии показать ошибки отдельно для каждой группы. Прямо сейчас, когда я хочу добавить отдельный дисплей ошибки на моем взгляде, HTML, я делаю:
<?php if(form_error('group[]')) {
echo '<div class="validationError">' . form_error('group[]') . '</div>';
}?>
Вопрос этот код не различает ошибки, установленные для группы [0] против группы [1] ,
Согласно документации CodeIgniter, я должен быть в состоянии сделать это:
$this->form_validation->set_rules('group[0]', 'Group', 'callback_verifyGroupData');
$this->form_validation->set_rules('group[1]', 'Group', 'callback_verifyGroupData');
На практике это не приводит к моему verifyGroupData()
вызывался на всех.
Можете ли вы предложить подход к этой проблеме?
Вы пробовали отлаживать библиотеку form_validation, чтобы попытаться выяснить, что происходит? Он находится в системе/libraries/form_validation. – musoNic80