2011-08-11 6 views
2

예를 들어 기본 템플릿을 변경하는 방법 : ajaxhandlerController 라는 이름의 컨트롤러가 여러 아약스 요청 유형을받을 수 각 유형은 ajaxhandler 내가 지수의 레이아웃 XML 레이아웃젠토 : 컨트롤러에 동적으로

별도의 블록을 가져야한다 쓸 것입니다

<mymodule_ajaxhandler_index> 
     <block some block></block> 
    </mymodule_ajaxhandler_index> 

$ request [ 'type'] == "save"가 있으면 예를 들어 인덱스를 저장하도록 어떻게 변경합니까? 그래서 사용할 수 있습니다

<mymodule_ajaxhandler_save> 

답변

6

저는 레이아웃 XML을 잊어 버릴 것입니다. 단순히 Core_Block_Html_Template을 인스턴스화하고받은 요청 유형에 따라 setTemplate 메소드를 사용하여 올바른 템플릿을 할당하십시오.

$html = $this->getLayout() 
     ->createBlock('core/template') 
     ->setTemplate('your/template.phtml') 
     ->toHtml(); 
+0

나는이 작업을 시도했지만이 코드는 모듈/블록 체인을 통과하지 않았습니다. 그래서 결과는 빈 템플릿 블록입니다. layout.xml에있는 것을 사용하는 것은 괜찮습니다. 저장을위한 새로운 컨트롤러를 만들었고 템플릿을 올바르게 뽑았습니다. 어떤 제안? –

+0

당신은 $ html hehe를 echo했습니다 : –

+0

yes 물론 대답했습니다. (대답하기 전에 이미 그 방법을 시도 했었습니다. 그리고 빈 블록을 의미하는 것은 데이터에서 비어 있음을 의미합니다. XX를 선택했을 때 해당 레이아웃 xml .it를 올바르게 사용할 때 블록을 만들 때 단순히 데이터가없는 블록이 표시됩니다. 블록의 부모 메서드를 사용하지 않는 것 같습니다. 추가 조사가 필요합니다. –