Codeigniter : Validating two fields

codeigniter

I have two numeric fields to collect data from users. Need to validate it using codeigniter form validation class.

Conditions:

  1. First field can be zero
  2. Second field cannot be zero
  3. First field should not be equal to second field
  4. Second field should be greater than first field

Currently I use

$this->form_validation->set_rules('first_field', 'First Field',
'trim|required|is_natural');

$this->form_validation->set_rules('second_field', 'Second Field',
'trim|required|is_natural_no_zero');

But, how to validate for 3rd and 4th condition mentioned above?

Thanks in advance.

Best Answer

Thanks dm03514. I got it working by the below callback function.

$this->form_validation->set_rules('first_field', 'First Field', 'trim|required|is_natural');
$this->form_validation->set_rules('second_field', 'Second Field', 'trim|required|is_natural_no_zero|callback_check_equal_less['.$this->input->post('first_field').']');

and the callback function is:

function check_equal_less($second_field,$first_field)
  {
    if ($second_field <= $first_field)
      {
        $this->form_validation->set_message('check_equal_less', 'The First &amp;/or Second fields have errors.');
        return false;       
      }
      return true;
  }

Everything seems to be working fine now :)

Related Topic