ошибка при проверке формы печати codeigniter - PullRequest
1 голос
/ 02 февраля 2012

У меня есть 2 формы на странице, например: 'create_user' и 'update_user'. Я хочу показать ошибки проверки, специфичные для каждой формы, прямо над формой. я имею в виду, я хочу показать ошибки проверки для формы 'create_user' чуть выше нее и такой же для 'update_user'.

Прямо сейчас, если я отправляю обновление, ошибки формы отображаются над обеими формами. есть что-то вроде

<? echo validation_errors("create_user");   ?>

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Вы можете сделать что-то вроде:


//pass validation_errors as data to your view from your controller, like
//in your controller
if ($this->form_validation->run()) {  //form create_user form
  //process
}
else {
   $data['create_user_form_errors'] = validation_errors();
}
//and for second form update_user
if ($this->form_validation->run()) {  //form create_user form
  //process
}
else {
   $data['update_user_form_errors'] = validation_errors();
}

//then in your view
if (isset($create_user_form_errors)) echo $create_user_form_errors; //show above first form
//and
if (isset($update_user_form_errors)) echo $update_user_form_errors; //show above second form

Нечто подобное должно работать для отображения ошибок на основе нескольких форм. Надеюсь, это поможет

2 голосов
/ 02 февраля 2012

Самый простой способ это:

  1. Передайте какое-то скрытое поле для идентификации формы с каждой формой
  2. Передача того же скрытого поля в состояние ошибки просмотра и использование базового условия IF для запуска validation_errors() в правильном месте

Возможно, вы могли бы как-то расширить класс валидации, чтобы выполнить то, о чем вы просите, но это будет очень специфическая реализация, и вряд ли она будет полезна в фреймворке (именно поэтому CI не «знает», как это сделать, дефолт). Дополнительная сложность работы с расширенным классом, скорее всего, сведет на нет все преимущества не просто использования базовой логики в представлении.

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