CakePHP2系を利用して、JSON形式のデータをVIEW側が受け取る方法
環境
CakePHP 2.1.2
PHP 5.3.10
ResponseオブジェクトのbodyにJSONデータをセットしてVIEW側に返却
HogesController.php
class HogesController extends AppController {
public function hoge() {
$this->autoRender = false;
$json = array('json_data'=>array('key01'=>'data01', 'key02'=>'data02'));
return new CakeResponse(array('body' => json_encode($json)));
}
}
jQuery.ajax() の dataType を 'json' として受け取るデータを JSON データとして評価
jQuery.parseJSON() を利用して、JSON データをJavaScript オブジェクトに変換
hoge.ctp
<?php
$js = <<< JS
$(function(){
var _hoge = function() {
var json = $.ajax({
url: 'hoges/hoge',
async: false,
type: 'GET',
dataType: 'json'
});
if (json.responseText == '') return true;
var response = $.parseJSON(json.responseText);
console.log(response.json_data.key01);
console.log(response.json_data.key02);
};
_hoge();
});
JS;
echo $this->Html->scriptBlock($js, array('block' => 'script'));
?>