summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--system/language/english/form_validation_lang.php1
-rw-r--r--system/libraries/Form_validation.php14
-rw-r--r--user_guide_src/source/changelog.rst1
-rw-r--r--user_guide_src/source/libraries/form_validation.rst1
4 files changed, 17 insertions, 0 deletions
diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php
index e5ef09e3e..a66e192e2 100644
--- a/system/language/english/form_validation_lang.php
+++ b/system/language/english/form_validation_lang.php
@@ -65,3 +65,4 @@ $lang['form_validation_less_than_equal_to'] = 'The {field} field must contain a
$lang['form_validation_greater_than'] = 'The {field} field must contain a number greater than {param}.';
$lang['form_validation_greater_than_equal_to'] = 'The {field} field must contain a number greater than or equal to {param}.';
$lang['form_validation_error_message_not_set'] = 'Unable to access an error message corresponding to your field name {field}.';
+$lang['form_validation_in'] = 'The {field} field must be one of: {param}.';
diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php
index 819224528..e81216edb 100644
--- a/system/libraries/Form_validation.php
+++ b/system/libraries/Form_validation.php
@@ -1449,6 +1449,20 @@ class CI_Form_validation {
// --------------------------------------------------------------------
/**
+ * Value should be within an array of values
+ *
+ * @param string
+ * @param array
+ * @return bool
+ */
+ public function in($value, $list)
+ {
+ return in_array($value, explode(',', $list), TRUE);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Is a Natural number (0,1,2,3, etc.)
*
* @param string
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index a22b94f8c..0f89077b1 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -350,6 +350,7 @@ Release Date: Not Released
- Removed method ``is_numeric()`` as it exists as a native PHP function and ``_execute()`` will find and use that (the **is_numeric** rule itself is deprecated since 1.6.1).
- Native PHP functions used as rules can now accept an additional parameter, other than the data itself.
- Updated method ``set_rules()`` to accept an array of rules as well as a string.
+ - Added support for ``in`` method that test if a given value is within a given list.
- Fields that have empty rules set no longer run through validation (and therefore are not considered erroneous).
- Added rule **differs** to check if the value of a field differs from the value of another field.
- Added rule **valid_url**.
diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst
index f964965ec..4ba3a33b7 100644
--- a/user_guide_src/source/libraries/form_validation.rst
+++ b/user_guide_src/source/libraries/form_validation.rst
@@ -961,6 +961,7 @@ Rule Parameter Description
not numeric.
**less_than_equal_to** Yes Returns FALSE if the form element is greater than the parameter value, less_than_equal_to[8]
or not numeric.
+**in** Yes Returns FALSE if the form element is not within a predetermined list. in[red,blue,green]
**alpha** No Returns FALSE if the form element contains anything other than alphabetical characters.
**alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters.
**alpha_numeric_spaces** No Returns FALSE if the form element contains anything other than alpha-numeric characters