将CI的set_value()函数进行改造,可以处理数组形式的字段。
if ( ! function_exists('set_value')) { function set_value($field = '', $default = '') { $field_orgin=$field; if(strpos($field,'[')){ list($field,$item)=explode('[',str_replace(']','',$field)); } if(isset($_GET[$field]) && ! isset($_POST[$field])){ if(isset($item) && !empty($item) && ($_GET[$field][$item])){ return form_prep($_GET[$field][$item], $field_orgin); } return form_prep($_GET[$field], $field_orgin); } if (isset($_POST[$field])){ if(isset($item) && !empty($item) && ($_POST[$field][$item])){ return form_prep($_POST[$field][$item], $field_orgin); } return form_prep($_POST[$field], $field_orgin); } if (FALSE !== ($OBJ =& _get_validation_object())){ return form_prep($OBJ->set_value($field_orgin, $default), $field_orgin); } return form_prep($default, $field_orgin); } }