2013-04-30 58 views
1

我正在使用Codeigniter提供的验证库。
我的Web应用程序使用会话和JavaScript填充警报消息。

因此,我希望我的错误消息为json格式。
但助手函数validation_errors()只输出html格式。

我该怎么办?Codeigniter验证库存储会话中的错误

if ($this->form_validation->run() == FALSE) 
      { 
       add_flash_message('alert', $flash_in_json); 
       redirect('enquiry/create'); 
      } 

回答

2

我客串正确的解决方案是延长CI_Form_valuidation类吸气剂添加到保护varible $ _error_array ..

Class MY_Form_validation extends CI_Form_validation { 
    function getErrorsArray(
     return $this->$_error_array; 
    ) 
} 
+0

+1使用错误数组。为了补充说明,数组中项目的格式是''field name'=>'错误消息'。你可以用json_encode()将它转换成json。请记住,可能存在多个错误,因此您可能需要在foreach循环中包装add_flash_message()或将其修改为接受数组而不是单个错误。 – Samutz 2013-04-30 12:41:38

1

这是用于转换validation_errors()输出功能,以JSON

function prep_validation_errors($errors){ 
     $str = str_replace('</p>', '', $errors); 
     $arr = explode('<p>', $str); 
     return json_encode($arr); 
    } 

那么你可以使用它作为以下内容:

$json = $this->prep_validation_errors(validation_errors());