2011-12-28 8 views
0

안녕하세요 사람들은 jquery 스크립트를 제출하여 양식을 제출하고 성공하면 json 출력을 다시 보냅니다.Ajax 및 jquery 리다이렉트

function subscribe(email, city){ 
    var email = $('input#email').val(); 
    var city = $('select#citySelect').val(); 

    $.ajax({ 
     url: 'http://www.amazingvouchercodes.co.uk/avc_dev/subscribe/subscribeTo', 
     type: 'post', 
     data: 'email='+email+'&city='+city, 
     dataType: 'json', 
     success: function(json){ 
      window.location.href = json['url']; 
      $('#notifications').append('<div class="success">'+json['success']+'</div>'); 
     } 
    }); 
} 

내가 가지고있는 문제는 리디렉션 후 알림 나던 쇼를 리디렉션하기 전에 리디렉션 후 알림을 표시 할 수있는 방법이 알림> JSON의 성공을 표시하고 있다는 점이다?

덕분에 모든 도움말이 감사합니다 :)

+0

을 프레임 워크를 사용하고 있습니까? 플랫폼이 플래시 범위를 지원하는 경우 플래시 범위의 완벽한 사용 사례처럼 들립니다. – wrschneider

+0

예치이 덕분에있어, –

답변

0

AlienWebguy 제안처럼,

, 그래서 자바 스크립트가 리셋됩니다 : 다음 페이지에서

, 당신은 같은 것을 포함 할 수 있습니다.

가장 좋은 방법은 대기중인 경우 화면 상단에 메시지를 표시하는 레이아웃/머리글 (이 사이트가 주황색 막대의 내용을 사용자에게 알리는 것과 같이)을 표시하는 요소를 설정하는 것입니다. 따라서 Ajax 페이지에서 알림 (세션/쿠키) 변수를 설정합니다. 그런 다음에 (당신의 리디렉션 후) 페이지로드, 레이아웃은 레이아웃/헤더에 표시하고 지 웁니다 보류 알림이 알 것이다 (그래서 한 번만 표시됩니다.) 어떤 서버 측

+0

내가, JQuery와 및 JScript 아주 새로운 메신저 u는 어떻게이 작업을 수행 또는 어떤 독서 자료 :이 –

+0

@JoeElliott 날 지점하는 나에게 몇 가지 정보를 줄 수있는이 방법의 소리를 좋아한다) 실제로 뭔가입니다 JavaScript가 아닌 PHP와 같은 서버 측 언어로 구현할 수 있습니다. 귀하의 의견에 제안 된 wrschneider99 마찬가지로 CakePHP, RoR 같은 서버 측 프레임 워크를 사용하는 경우 이미 내장되어 있습니다. –

+0

나는 codeigniter를 사용하므로 세션 메시지가 깜박입니다 :) –

0
당신은 window.location.href = json['url'] + "?redirMsg=Foo+Bar";처럼 당신의 페이지에 뭔가를해야 할 것

redirMsg 쿼리 문자열에 있는지 확인하고, 만약 그렇다면, 귀하의 통지를 알려줍니다.

0

당신은 당신이 성공 함수가 리디렉션을 야기 할 한 다음 리디렉션 된 페이지에 뭔가를 업데이트 건가요?

그렇다면 약간 다르게해야합니다. 리디렉션 된 페이지는이 첫 페이지에서 실행을 시작한 자바 스크립트를 계속 실행하지 않습니다.

하나의 옵션은 다음 페이지를 업데이트하도록 알려주는 쿼리 문자열 변수를 추가하는 것입니다. 예 :

window.location.href = json['url'] + "?msg=success"; 

그런 다음 다음 페이지에서 해당 querystring 변수를 확인하고 업데이트가 있는지 확인합니다. 새 페이지를로드하기 때문입니다

function getFromQuery(name){ 
    if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search)) 
     return decodeURIComponent(name[1]); 
} 

if (getFromQuery("msg")=="success") 
{ 
//do your update here 
$('#notifications').append('<div class="success">'+json['success']+'</div>'); 
}