在使用AJAX和JSON时,我正面临CakePHP 2.4的一些问题.
我想用视图呈现数据,但是将生成的html保存为变量中的字符串.之后,我想设置一个数组,其中包含此html字符串以及其他数据作为JSON对象返回.不幸的是我找不到正确的方法.
到目前为止,我的控制器代码使用了CakePHP json魔术:
//Controller (just parts)
$data = $this->paginate();
if($this->request->is('ajax')) {
$jsonResponse = array(
'jobs' => $data,
'foci' => $foci,
'jobTypes' => $jobTypes,
'count_number'=> $count_number
);
$this->set('jsonResponse', $jsonResponse);
$this->set('_serialize', 'jsonResponse');
} else {
// render regular view
$this->set(compact('data', 'foci', 'jobTypes', 'count_number'));
}
Run Code Online (Sandbox Code Playgroud)
这在javascript控制台中输出完美的json,除了事实之外,$ data中的数据是纯数据.
是否有可能将$ data传递给视图,渲染它,将输出保存到字符串变量$ html,并将$ html传递给jsonResponse中的作业而不是$ data?
我的 ruby 和 json 有问题。\n我有一个 json 文件,其中包含从互联网上抓取的信息。对于以下问题,我将使用硬编码文件,其语法如下:
\n\n[{\n "day": "20120827_234558",\n "entries": [\n {\n "rank": "3",\n "club": "SuS Schalke 1896 e.V.",\n "votes": "126"\n },\n {\n "rank": "4",\n "club": "TuS Hamborn-Neum\xc3\xbchl 07 e.V.",\n "votes": "120"\n }\n]\n},{\n "day": "20120827_234700",\n "entries": [\n {\n "rank": "1",\n "club": "TLV Germania 1901 Essen-\xc3\x9cberruhr",\n "votes": "210"\n },\n {\n "rank": "2",\n "club": "Rumelner TV",\n "votes": "141"\n }\n]\n}]\nRun Code Online (Sandbox Code Playgroud)\n\n然后我编写了一个 ruby 脚本,它从文件中加载 json 并将其放入哈希中,\n从互联网上获取一些信息(在本例中也是硬编码的),将这些新信息添加到哈希中,将哈希转换为 json并将其再次存储在文件中。
\n\nrequire \'rubygems\'\nrequire \'open-uri\'\nrequire \'json\'\n\nfname = \'ranking.json\'\n\njson = JSON.load(File.open(fname))\n\njson.each do |ranking|\n puts \'entry:\'\n puts …Run Code Online (Sandbox Code Playgroud)