Проверки CodeIgniter - PullRequest
       10

Проверки CodeIgniter

0 голосов
/ 12 ноября 2009

У меня есть набор полей для проверки. Вот сценарий.

Допустим, у меня есть поля, показанные ниже. Поскольку имена совпадают, я ставлю число и добавляю в конце.

job_title_1 company_name_1 responsibilities_1

job_title_2 company_name_2 responsibilities_2

job_title_3 company_name_3 responsibilities_3

На мой взгляд, я использовал (для оператора) цикл и присваивал этот номер в конце имени поля, а затем передавал переменную «ctr = 3» в моем контроллере.

Я использую валидацию вот так

  $validation_errors = array();
  for ($i = 1; $i <= $ctr; $i++)
  {
    $this->form_validation->set_rules('career_objectives_' . $i, 'Career objectives title', 'trim|required');                                                                                    
    $this->form_validation->set_rules('job_title_' . $i, 'Job title / position', 'trim|required');
    $this->form_validation->set_rules('company_name_' . $i, 'Company', 'trim|required');    
    $this->form_validation->set_rules('from_date_employment_' . $i, 'From date of employment', 'trim|required');            
    $this->form_validation->set_rules('to_date_employment_' . $i, 'To date of employment', 'trim|required');    
    $this->form_validation->set_rules('responsibilities_' . $i, 'Responsibilities type', 'trim|required');
    $this->form_validation->set_error_delimiters('<div class="valid-err">', '</div>');                    

    if ($this->form_validation->run() == FALSE)
    {
      $validation_errors[$i] = validation_errors();
    }                
  } 

Я решил поместить validation_errors в массив, чтобы я мог получить это в моем представлении и поместить ошибку строки в отдельном месте. Моя проблема сейчас в том, что даже у job_title_1 есть только ошибка. Все job_title от 1 до 3 выдавали ошибку. Я думаю, что validation_errors () не был понятен следующему циклу.

Любая помощь будет принята с благодарностью.

Я уже разместил его на CodeIgniter форумах, но у меня нет правильных решений.

1 Ответ

3 голосов
/ 12 ноября 2009

Вы не хотите запускать $this->form_validation->run() в вашем цикле. Он (правильно) запускается три раза, и поскольку проверки не очищаются при запуске проверки формы, он проверяет job_title_1 три раза.

Я предполагаю, что вы пытаетесь быть конкретным для пользователя, в котором числится сотрудник / секция, в которой происходит ошибка. Лучше для этого использовать ошибки, специфичные для поля:

form_error('job_title_1');

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