2013-04-30 52 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());