Ajax CakePHP JsHelper-获取响应并在视图中打印
我很难找到如何从位于视图中控制器中的以下代码获得响应:Ajax CakePHP JsHelper-获取响应并在视图中打印,ajax,json,cakephp,Ajax,Json,Cakephp,我很难找到如何从位于视图中控制器中的以下代码获得响应: if ($this->request->isAjax()){ Configure::write ( 'debug', 0 ); $this->autoRender = 0; $this->layout = 'ajax'; $results = "My Data"; echo json_encode($results); }
if ($this->request->isAjax()){
Configure::write ( 'debug', 0 );
$this->autoRender = 0;
$this->layout = 'ajax';
$results = "My Data";
echo json_encode($results);
}
//tried doing this and it doesn't work
$this->set('results',$results);
我只想在视图中访问$results变量中的数据 如果这是您的整个方法,那么在视图中不显示任何内容是合乎逻辑的。由于您已使用以下选项禁用自动渲染:
$this->autoRender = 0;
您需要在某个时间点手动渲染视图,使用:
$this->render('view');
其中view
是要渲染的视图的实际名称。否则,您将得到一个空白页
还要注意的是,您在
isAjax()
检查中设置了$results
,但您将其设置为该检查之外的视图,因此如果是“常规”调用(非ajax),您将得到一个未定义的变量错误是对控制器操作执行的。使请求看起来像什么样的视图代码?$autoRender通常是布尔值,而不是int。但这不重要。。我将autoRender设置为false,因为我不想渲染任何东西,我只想存储ajax响应返回的数据,然后将其发送回视图。另外,我正在做$this->set();在isAjax()检查中,上面只是一个示例代码。直到我开始使用JsHelper,我才遇到这个问题。@Walter听起来你在寻找一个$this->Js->request
。看看这个。