CakePHP JsHelper - 获取响应并在视图中打印它

时间:2013-01-08 21:45:59

标签: ajax json cakephp

我很难弄清楚如何从以下代码中获取响应,该代码位于视图中的Controller中:

   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);

我只是希望能够在我的View中访问$ results变量中的数据。

1 个答案:

答案 0 :(得分:0)

如果这是您的整个方法,那么您的视图中不显示任何内容是合乎逻辑的。由于您已使用以下功能禁用自动渲染功能:

$this->autoRender = 0;

您需要使用以下方式手动渲染视图:

$this->render('view');

其中view是您要呈现的视图的实际名称。否则,您只会得到一个空白页。

另请注意,您在$results检查中设置了isAjax(),但是您将其设置为该检查之外的视图,因此如果&#34,您将收到未定义的变量错误;定期" call(非ajax)是对你的控制器动作。