2013-07-23 3 views
1

데이터베이스에 새 노래를 입력 할 수있는 양식이 있습니다. 문제는 성공적인 "포함"메시지가 표시된 팝업을 불러 오려면 "저장"버튼을 클릭하는 것입니다. 필자에게는보기를 나타내는 파일 하나와 다른 컨트롤러가있는 두 개의 파일이 있습니다. 내가 팝업을 가져 와서 뷰에서 검색 할 수있게 해주는 JavaScript 코드가 포함 된 변수를 컨트롤러에 넣을 수 있습니까?제출 후 팝업 메시지가 표시된 성공 메시지

이것은 컨트롤러 (Slim Framework를 사용함)입니다.

$popup = array(); 
$popup = '$(function(){ 
    $("#dialog-message").dialog({ 
     modal: true, 
     buttons: { 
      Ok: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
});'; 
$app->render('newkaraoke.html', array('pop'=>$popup)); 

는 참조 변수

<?php echo $pop;?> 
+0

당신이하고 싶은 것은 ajax 호출이다. 이것은'jQuery.post(); 나'jQuery.ajax()'로 할 수있다. 조금 연구를한다면 어떻게 작동하는지 알 수 있습니다. –

+0

왜 배열로'$ popup'을 선언하고 문자열을 할당하고 있습니까? – DevZer0

+0

왜 js를 삽입하기 위해 여기 PHP를 사용 하시겠습니까? '.js' 스크립트 만 사용하십시오. – Brewal

답변

0

내 솔루션은 계정에 어떤 프레임 워크를하지 않지만, 상관없이 작동합니다 전망이다. 이 코드는만큼 당신이보기에 $_POST['submit-music'] 변수를 전달로 작동

if(isset(_POST['submit-music'])) { 
echo " 
    <div id='success-message'>Your song has been added to the database</div> 
"; 
} 

:이 위해 만들 수

가장 쉬운 방법은 간단 if() 문장과 같이합니다. POST var를 항상 $submitted과 같이 쉽게 넣을 수 있으며 그 값이 존재하는지 확인하십시오.

팝업을 제거하려면 (원하는 경우) 다음 코드를 작성합니다 (그러나 JQuery를 사용하지만 Javascript 대체를 작성할 수 있음).

$('document').ready(function() { 
    $('#success-message').delay(3000).fadeOut(); 
}); 

3000은 div를 페이드 아웃하기 전에 경과하는 시간입니다. 이 경우 3 초로 설정됩니다.