Используя AJAX в приложениях Codeigniter, нередко нужно возвращать результат выполнения скрипта в формате JSON. Хоть и стандартного способа в Codeigniter нет, это легко исправить. Достаточно переопределить файл ядра Output.php и добавить один метод.
Для этого создадим новый php файл в папке core Codeigniter приложения, по умолчанию это /application/core/MY_Output.php. Далее нужно написать следующий код:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Output extends CI_Output
{
/**
* Выводит данные в формате JSON
* @param $data массив данных, который нужно возвратить в JSON
*/
function json($data)
{
$this->set_content_type('application/json');
$this->final_output = json_encode($data);
return $this;
}
}
Здесь мы определяем новый метод json($data)
для системного класса Output.php. Он принимает массив, который будет преобразован в JSON и отправлен как результат AJAX запроса браузеру.
Приведу простейший пример, как пользоваться новым методом:
// ...
public function ajax_result() {
$result = array(
'status' => 'success',
'message' => 'Операция успешно выполнена',
);
// Возвращаем результат выполнения в JSON
$this->output->json($result);
}