Kevin Brown
Kevin Brown

Reputation: 12650

Codeigniter validation--how to limit numerical value?

I simply need to add a validation class that limits a numerical entry from being greater than 24.

Is this possible with CI's default validation classes or will I have to write a custom validation class?

Upvotes: 4

Views: 16487

Answers (3)

Arif
Arif

Reputation: 111

You can use validation rule "greater_than[24]"

like for Example

$this->form_validation->set_rules('your_number_field', 'Your Number', 'numeric|required|greater_than[24]');

Upvotes: 11

zombat
zombat

Reputation: 94237

There's no maximum or minimum comparison function in the Form Validation Rule Reference, so you can just write your own validation function.

It's pretty straightforward. Something like this should work:

function maximumCheck($num)
{
    if ($num > 24)
    {
        $this->form_validation->set_message(
                        'your_number_field',
                        'The %s field must be less than 24'
                    );
        return FALSE;
    }
    else
    {
        return TRUE;
    }
}


$this->form_validation->set_rules(
        'your_number_field', 'Your Number', 'callback_maximumCheck'
    );

Upvotes: 5

naivists
naivists

Reputation: 33551

Sure you can, just make your own validation function and add it as a callback to validation rule. See http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks

Hence, you will have

...
$this->form_validation->set_rules('mynumber', 'This field', 'callback_numcheck');
....
function numcheck($in) {
  if (intval($in) > 24) {
   $this->form_validation->set_message('numcheck', 'Larger than 24');
   return FALSE;
  } else {
   return TRUE;
  }
}

Upvotes: 4

Related Questions