2011-04-27 2 views
0

스크립트를 제출하는 데 시간이 오래 걸릴 수있는 양식이 있습니다 (~ 30-60 초,주고 받음). 나는 사용자가 기다리는 동안 결과가 처리 중임을 보여주는 회 전자를 원합니다. 일반적으로 처리 스크립트에 회 전자를 부착하고 처리 할 것이지만 스크립트에 액세스 할 필요는 없습니다. js/jQuery를 사용하여 AJAX 요청을 제출 한 다음 처리가 완료되면 대상 페이지를로드 할 수 있습니까? 이와 같은 것이 내가 원하는 것입니다.문서를 AJAX 결과로 바꿉니다.

<script type="text/javascript"> 
    $(function() { 
     $("#myForm").submit(function() { 
      var data = $(this).serialize(); 
      $.post("url/to/script.php", data, function (results) { 
       // replace this entire document, url included, with the results 
      }); 
      $("#spinner").hide().ajaxStart(function() { 
       $(this).show(); 
      }).ajaxStop(function() { 
       $(this).hide(); 
      }); 
     }); 
    }); 
</script> 

다른 아이디어도 있습니다.

[편집]으로

(희망) 명확히 : 나는 결과가 백그라운드에서로드, 그들이 수행하는 경우에만 그들로 이동합니다. 이 동작 (회 전자 제외)은 최종 사용자가 자바 스크립트를 사용하지 않고 양식을 제출하는 것과 다를 바 없습니다.

[편집 2] 나는 문제는 이제 학술 그래서, 장소에 스피너를 넣어 대상 스크립트의 소유자를 설득 관리

.

+0

"URL 포함"이란 무엇입니까? 아약스를 돌려주는 것은 무엇입니까? 전체 문서를 대체하려면'$ ("body") .html (results); ' – jotapdiez

+0

나는 그것을 시도하고 빈 스크린을 얻는다. 나는 그것이 결과의 에있는 것과 관련이 있다고 생각한다. 결과를 머리와 몸으로 파싱 한 다음 동일한 결과 (빈 화면)로 jQuery를 통해 결과를 할당하려고했습니다. – asgallant

+0

무엇이 ajax를 반환합니까? – jotapdiez

답변

1

만약 내가 당신을 이해한다면 ... 당신은 자바 스크립트로 URL을 대체 할 수 없습니다. ajax가 성공하면 window.location.href = "your-new-url.com"만 할 수 있습니까?

그렇게 할 수 없다면 아약스 요청의 결과 데이터를 새 URL에 게시하고 결과 페이지를 뱉어 낼 수 있습니다.

+0

window.location.href = url을 설정하면 브라우저가 완전히 새로운 요청으로 대상 URL을로드하여 목적을 달성하지 못합니다. URL 바에 반환 된 HTML을 추가하면 검색 결과를 검색 페이지에 삽입하는 것과 마찬가지로 상대 링크가 끊어집니다. – asgallant

+0

@asgallant 나는 그것이 무엇을하는지 알고 있습니다. 나는 너를 정말로 제대로 이해하지 못한다고 생각한다. 당신이하려고하는 것이 무엇인지에 관해 더 많은 정보를 제공 할 수 있다면, 나는 당신을 더 멀리 도울 수있을 것입니다. – Craig

관련 문제