diff options
author | Andrey Andreev <narf@devilix.net> | 2013-10-23 18:57:46 +0200 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2013-10-23 18:57:46 +0200 |
commit | a587a939ce0b8e7d1dfe0830ac83d881e151d6e0 (patch) | |
tree | 8ee3579bd062508cb202b3ab8314b7ffe70ebc30 /system/libraries/Form_validation.php | |
parent | 6614367f62d2cbd9e8f979c9349cd5474b035866 (diff) |
Fix issue #2695
Diffstat (limited to 'system/libraries/Form_validation.php')
-rw-r--r-- | system/libraries/Form_validation.php | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 8b9bfa897..5ea2f81af 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -898,12 +898,19 @@ class CI_Form_validation { } $field = $this->_field_data[$field]['postdata']; + $value = (string) $value; if (is_array($field)) { - if ( ! in_array($value, $field)) + // Note: in_array('', array(0)) returns TRUE, do not use it + foreach ($field as &$v) { - return ''; + if ($value === $v) + { + return ' selected="selected"'; + } } + + return ''; } elseif (($field === '' OR $value === '') OR ($field !== $value)) { @@ -934,12 +941,19 @@ class CI_Form_validation { } $field = $this->_field_data[$field]['postdata']; + $value = (string) $value; if (is_array($field)) { - if ( ! in_array($value, $field)) + // Note: in_array('', array(0)) returns TRUE, do not use it + foreach ($field as &$v) { - return ''; + if ($value === $v) + { + return ' checked="checked"'; + } } + + return ''; } elseif (($field === '' OR $value === '') OR ($field !== $value)) { |