0

コントローラーにある以下のコードからの応答をビューに戻す方法を理解するのに苦労しています:

   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 変数にあるデータにアクセスできるようにしたいだけです。

4

1 に答える 1

0

これがメソッド全体である場合、ビューに何も表示されないのは当然です。次の方法でautoRenderingを無効にしたため:

$this->autoRender = 0;

以下を使用して、ある時点でビューを手動でレンダリングする必要があります。

$this->render('view');

レンダリングするビューの実際の名前はどこviewにありますか。そうしないと、空白のページが表示されます。

また$results、チェック内で設定しisAjax()ていますが、そのチェック外のビューに設定しているため、コントローラーアクションに対して「通常の」呼び出し (ajax 以外) が行われると、未定義の変数エラーが発生することに注意してください。

于 2013-01-08T21:52:51.460 に答える