2008-09-24 4 views
0

CakePHP 1.2 응용 프로그램에서 "Record edited"와 같은 메시지를 출력하기 위해CakePHP의 session-flash() 출력에 제어 해제하기

<?php $session->flash();?> 

을 사용하고 있습니다. 잘 작동합니다.

그러나 메시지를 페이드 아웃하는 "Dismiss"라는 링크를 추가하고 싶습니다. 링크를 생성하는 방법을 알고 있지만 flass 메시지의 출력에 삽입하는 방법을 모르겠습니다.

플래시 메시지가 DIV tag에 랩핑됩니다. 해당 div에 내 닫을 코드를 삽입하고 싶지만 어떻게 작동하는지 모릅니다.

답변

1

이 알아 낸 플래시를 설정할 때 다음

<?php echo $content_for_layout; ?> 

을 메시지를 사용하려면 사용할 레이아웃을 지정하십시오.

$this->Session->setFlash('Your record has been created! Wicked!','message'); 
+0

왜 PHP 코드 줄이 나타나지 않는지 잘 모르겠습니다. 소독제의 버그 같아. – Justin

+0

4 개의 공백을 사용하여 들여 쓰기해야합니다. –

1

0을 사용하려고합니다.기능. setflash에 $ default라는 빈 문자열을 전달하면 div에 메시지를 래핑하지 않고 그대로 저장합니다. 이렇게하면 원하는 마크 업을 표시 할 수 있으며 Justin 게시시 다른보기 페이지를 메시지에 사용할 수 있으므로보기와 컨트롤러가 섞이지 않도록 할 수 있습니다.

0

기본 방법은/app/views/layouts에 flash.ctp를 만드는 것입니다. 그러면/cake/libs/view/layouts에서 찾을 수있는 기본 flash.ctp가 무시됩니다. 따라서 추가 매개 변수를 사용할 필요가 없습니다.

btw : 이것은 모든 CakePHP 표준보기 및 레이아웃에서 작동합니다.

1

당신은 jQuery를 함께이를 달성 할 수

$(document).ready(function() { 

    $("#flashMessage").each(function() { 
     $close = $("<span class='close'>Close</span>"); 
     $close.click(function() { 
      $(this).parent().hide("slow"); 
     }); 
     $(this).append($close); 
    }); 

}); 

을 당신이 필요로 꽤 그것을 CSS의 비트와 함께,하지만 난 당신이 아이디어를 얻을 확신합니다.