2010-04-27 6 views
1

쉬울 수도 같이 보이지만 읽고 다른 SO가 가능하게 작동하기 위해서는 여러 가지 방법이 있습니다 응답 : PHP는 양식이 성공적으로 제출 될 때jQuery는 PHP로 공개되고 자바 스크립트가 아닌 div를 fadeout합니까?

을 나는 "감사합니다"가 그 아래 사업부는 보여줍니다

<?php if(isset($emailSent) && $emailSent == true) { ?> 
<div class="thanks"></div> 

양식을 제출 한 후에 페이지가 다시로드되지 않습니다. 양식의 PHP는 페이지 머리글에 포함되어 있으며 위의 PHP는 <body>이고 양식을 제출하면 "감사"div가 나타납니다.

질문 : 몇 초 후에 div가 어떻게 페이드 아웃 (또는 단순히 제거) 될 수 있습니까?

페이지가 다시로드되지 않아 문서 준비가 작동하지 않는 것처럼 보입니다. jQuery가 div의 모양을 감지하고 fadeout timer를 시작할 수 있습니까?

가능하면 jQuery 양식으로 이동하지 않고 PHP 양식을 유지하고 싶습니다. 당신이 양식을 제출하고 그것이 아약스를 통해 아니라면

답변

4

, 다음 페이지가 다시로드되고,이 경우 당신은이 작업을 수행 할 수 있습니다

$(function() { 
    $(".thanks").delay(5000).fadeOut(); 
}); 

이 다음 요소를 약 페이드 아웃, 5 초 정도 지난 것 그것은 얻을만큼 간단합니다 :) $(".thanks")로 div를 찾지 못하면 아무런 문제가 없습니다. 애니메이션을 적용 할 항목이 없을 것입니다. 즉,이 문제는 외부 스크립트에서 아무런 문제없이 해결할 수 있습니다. 페이지가 이미로드되어 있기 때문에

+0

'delay()'는'setTimeout()'에 대한 래퍼 일뿐입니다 ... hmm은 기본 JavaScript의 모든 부분을 래핑 할 jQuery입니까? : P 나는 더 많이 * jQuery *를이 방법으로 사용한다고 생각한다. – alex

+0

@alex - 비슷하지는 않지만 특정 대기열에 지연을 추가합니다. 이름이 전달되지 않으면 애니메이션 대기열이됩니다. 예를 들면 다음과 같습니다.'.fadeIn(). delay (2000) .fadeOut() ...'원하는 경우 다른 대기열에서 지연으로 사용할 수도 있습니다. http://api.jquery.com/delay/ –

+0

그래서 그 함수는 헤더의 $ (document) .ready 블록에 들어 있는가? 나는 그것을 행운으로 시험해 보았다. 그리고 몸에 다른 마크 업이 있습니까? – markratledge

1

, 당신은 당신의 아약스 응답 스크립트를 페이드를 인쇄 할 수 있습니다 : 없음 :

<?php if(isset($emailSent) && $emailSent == true) { ?> 
<div class="thanks"></div> 
<script type="text/javascript"> 
$(".thanks").delay(5000).fadeOut(); 
</script> 
... 
0

당신은 표시하지 않을 사업부를 설정할 수 없습니다? 그런 다음 양식 제출 코드에 표시하십시오.

관련 문제