2011-12-15 4 views
0

그래서 여기에 상황이 있습니다 : 저는 내 default.ctp와 my ajax.ctp를 가지고 있습니다. my ajax.ctp는 그냥 빈 $ content_for_layout입니다.

내가 자동 완성 아약스 호출을 할 때 레이아웃을 '아약스'로 분명히 변경해야합니다. - // W3C // DTD

  • 의 DOCTYPE HTML PUBLIC에 "내가 내 옵션이 얻을 내 자동 완성의 결과를 볼 때 그래서 나는 내 컨트롤러 그러나

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

    이 기능이 XHTML 1.0 Transitional // EN ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

  • html xmlns = "http://www.w3.org/1999/xhtml" >

내 기본 layo는 기본적으로 기본 설정입니다. ut. 내 생각 엔 레이아웃이 변경되지 않았다는 것입니다.

누구든지이 문제가 발생했습니다. 내 컨트롤러에 뭔가를 추가하는 것을 잊었습니까? 모든 도우미와 구성 요소가 제자리에 있습니다.

+0

문제가 해결이된다. 내가 그걸 발견했을 때 나는 바보라고 느꼈다. ... – Christophe

답변

0

스크립트에서 잘못 될 수있는 부분은 많지 않습니다. 필터가 좋고보기 템플릿을 설정하기 전에. 내가 생각할 수있는 유일한 것은 아약스 요청이 어떻게 든 인식되지 않는다는 것입니다.

RequestHandler를 :: isAjax()의 코드는 매우 간단하다 :

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

그래서 나는 그것이 아약스로 인식 어떤지를 확인하기 위해 바르를 기록하는 것이 좋습니다. 또한 때로는 캐싱 나사가이 소리를 들었습니다. 보십시오 $ this-> disableCache(); 아약스인지 확인하기 전에. 그가 존재하지 않았다 movie_auto_complete.ctp을 찾고 그래서

디버깅 ... 내 movie_autocomplete.ctp는 이름으로 자본 없었 재미

+0

캐싱 문제에 관한 모든 출처는? – Moxy

관련 문제