2011-12-15 10 views
0

を変更しません状況です: 私は私のajax.ctpがちょうど空白の$ content_for_layoutで私のdefault.ctpに、私のajax.ctpを持っています。

私はオートコンプリートajax呼び出しを行っているとき、レイアウトを 'ajax'に変更する必要があります。 だから私は、私は私のオートコンプリートの結果を見たときにしかし、私は私のオプションでこれを取得する私のコントローラ

function beforeFilter() { 
     if($this->RequestHandler->isAjax()) { 
      $this->layout = 'ajax'; 
     } 
    } 

でこの機能を持っている:

  • DOCTYPE用HTML PUBLIC「 - // W3C // DTD XHTML 1.0過渡// EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
  • のhtmlのxmlns =" http://www.w3.org/1999/xhtml" basicly私のデフォルトのlayoです>

ut。 だから私の推測では、レイアウトが他の

誰でもこの問題が発生した変更していないということでしょうか?コントローラに何かを追加するのを忘れましたか?すべてのヘルパーとコンポーネントが配置されています。

+0

問題ではありません、彼は存在しなかったmovie_auto_complete.ctpを探していたので、私のmovie_autocomplete.ctpは名前に資本を持っていました。 私はそれを発見すると馬鹿だと感じました... – Christophe

答えて

0

あなたのスクリプトで間違っている可能性はあまりありません。フィルタが適切でビューテンプレートを設定する前に、私が考えることができるのは、あなたのAjaxリクエストが何とか認識されないということだけです。

のRequestHandler :: isAjax()のコードは非常に単純です:

function isAjax() { 
    return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest"; 
} 

は、だから私はそれがアヤックスとして認識されますかどうかを確認するためにあなたのVARSをログに記録することをお勧めします。また、キャッシング・スクリューが時々これを聞いていました。 $ this-> disableCache();を試してみてください。それがajaxかどうかを確認する前に。

デバッグ...が、それが解決楽しみ

+0

キャッシングの問題についての情報源はありますか? – Moxy

関連する問題