Codeigniter form validation set_value and set_checkbox problem fixed
For example, I have two fields in my form first_name and last_name
I have set the validation rule only for first_name. 'set_value' should work for both the fields regardless of rule ? Right ?
- No, set_value or set_checkbox or set_select only works against the items you have chosen to validate using the form_validation class.
Solution
Simple way to fix this problem is to overwrite the core 'MY_form_helper.php' with some functions.
- Copy the following code and save it and name it as 'My_form_helper.php' and placed under 'application/helpers' folder. It will overwrite the core functions.
Enjoy :)
Source: http://pastebin.com/h70F9esF
I have set the validation rule only for first_name. 'set_value' should work for both the fields regardless of rule ? Right ?
- No, set_value or set_checkbox or set_select only works against the items you have chosen to validate using the form_validation class.
Solution
Simple way to fix this problem is to overwrite the core 'MY_form_helper.php' with some functions.
- Copy the following code and save it and name it as 'My_form_helper.php' and placed under 'application/helpers' folder. It will overwrite the core functions.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * Form Value * * Grabs a value from the POST array for the specified field so you can * re-populate an input field or textarea. If Form Validation * is active it retrieves the info from the validation class * * @access public * @param string * @return mixed */ if (!function_exists('set_value')) { function set_value($field = '', $default = '') { $OBJ = & _get_validation_object(); if ($OBJ === TRUE && isset($OBJ->_field_data[$field])) { return form_prep($OBJ->set_value($field, $default)); } else { if (!isset($_POST[$field])) { return $default; } return form_prep($_POST[$field]); } } } if (!function_exists('set_checkbox')) { function set_checkbox($field = '', $value = '', $default = '') { $OBJ = & _get_validation_object(); if ($OBJ === TRUE && isset($OBJ->_field_data[$field])) { return form_prep($OBJ->set_checkbox($field, $value, $default)); } else { if (!isset($_POST[$field])) { return ''; } else{ if($_POST[$field] == $value) { return 'checked=\'checked\''; } } } } } /* End of file MY_form_helper.php */ /* Location: ./application/helpers/MY_form_helper.php */This will overwrite the core functions MY_form_helper.php and will work with all the fields regardless of validation rules.
Enjoy :)
Source: http://pastebin.com/h70F9esF
Nice Tutorial...i got useful information from this tutorial,here is a way to findsimple registration form using codeigniter
ReplyDelete