【发布时间】:2014-05-14 18:52:50
【问题描述】:
我正在尝试将 ajax 数据发送回视图,但它不起作用
这是我的控制器:
$this->autoRender = 0;
$this->layout = 'ajax';
$data = $this->HostingAccount->HostPackage->find('list',array('conditions' => array(
'HostPackage.host_id' => $this->data['HostingAccount']['host_id'])));
//can't get access to $options in my View
set('options',$data);
在 default.ctp 我有:
echo $this->Js->writeBuffer(array('inline' => true));
在ajax.ctp中:
<?php echo $this->fetch('content'); ?>
我尝试过使用不同的设置,例如注释掉 $this->autoRender 并尝试从默认视图而不是 ajax 访问 $options,但它只是不允许我从中获取数据。
请帮忙,谢谢!
【问题讨论】:
-
根据定义,AJAX 不止一个请求,您不能将数据从控制器返回到原始视图 - 它是第二个异步请求 - 例如,您需要使用 JSON 发送它,然后使用触发 AJAX 请求的原始视图中的 JS 中的此响应。阅读this 并查看那里链接的实时示例。
-
不确定 AJAX 不止一个请求是什么意思,我以前从未在任何地方看到过该定义,是的,可以将数据发送回视图,我只是想通了如何简单地为处理 AJAX 请求的函数创建视图。
-
您仍在将其从辅助 (AJAX) 请求发送回主 (GET) 请求。