Проверка формы Codeigniter - PullRequest
1 голос
/ 13 июня 2011

Можно ли отобразить одно сообщение для нескольких полей формы в CodeIgniter?Например, я установил следующие правила для полей электронной почты и пароля.Я хочу отобразить только одно сообщение, если какое-либо из этих двух полей недействительно.(например, неверный адрес электронной почты или пароль ")

$this->form_validation->set_rules('email_address', 'Email Address', 'valid_email|required');
$this->form_validation->set_rules('password', 'Password', 'required|min_length[4]');

Как мне это сделать? Спасибо за любую помощь.

Редактировать: Извините, если мой вопрос не ясен. В настоящее время я используюvalidation_errors(), и я получаю сообщения об ошибках в каждом поле. Однако я хочу показать одно и то же сообщение об ошибке, если какое-либо из двух полей (адрес электронной почты или пароль) недопустимо.оба недействительны, он должен напечатать одно сообщение, например: неверный адрес электронной почты или пароль.

Ответы [ 4 ]

3 голосов
/ 13 июня 2011

Перебирайте каждое поле и проверяйте, используя form_error (), добавляйте любые недопустимые имена полей в одну строку ошибки:

if($this->form_validation->run() == FALSE){
   $fields = array('email_address', 'password');
   $invalid_fields = array(); //where we'll store invalid field names
   foreach($fields as $field){
      if(form_error($field)){
         $invalid_fields[] = $field;
      }
   }
   $data['error_message'] = 'The following fields are invalid: ' . implode(",", $invalid_fields);
}
$this->load->view('yourview', $data); //if !empty($error_message) in view echo it out
3 голосов
/ 13 июня 2011

Я не уверен, что это то, что вам нужно, но вы можете попробовать:

if($this->form_validation->run() == FALSE){
   $message = 'Your error message here'; //validation_errors() works too.
}else{
   $message = 'Your success message here';
}

$this->load->view('yourview',array('feedback_message'=>$message));

Если вам все равно, какое поле недопустимо, тогда этот фрагмент в порядке. «Что-то не так, мне все равно, что не так, скажи пользователю».

1 голос
/ 13 июня 2011

По вашему мнению вы можете просто сделать это:

<?php if(!empty($this->form_validation->_error_array)): ?>
    <p>There were some errors.</p>
<?php endif; ?>
0 голосов
/ 13 июня 2011
$this->form_validation->set_message('rule', 'Error Message');

Я думаю, установка одинакового сообщения об ошибке для обоих правил сделает работу;)

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