2009-08-15 6 views
0
좋아

,JQuery와, 아약스 양식 및 재

좀 화려한 팝업 및 검증 것들에 대한 아약스를 사용해야하지만 모든 형태의 확인 인 경우 자바 스크립트 리디렉션 피하려고.

다음은 기본적인 간단한 시나리오입니다.

우리는 동적 사이트와 일부 사용자 로그인 양식을 가지고 있습니다. 알 로직 (사용자가 있는지, 암호 확인 여부 등)은 서버 측에 있습니다. 이 같은

서버 의사 코드 조회 : 나는 인쇄 어떤 서버 표시 아약스를 사용하는 경우

$username,$password; //form user input 

if (authenicate($user,$password)){ 
    redirect('myaccount'); 
} 
else { 
    print 'Wrong username and/or password'; //this should be displayed in the popup. 
} 

이제, 어떻게 서버 측에 리디렉션을 떠나 프론트 엔드에게 전하고!?

나는 (나는 약 15 가지 형태가 있기 때문에) 어리석은 방법으로 이것을 풀었다. 그리고 응답 폼 서버가 예를 들어 "LOGGED"인 경우 자바 스크립트 리디렉션을 사용합니다.

jQuery와이 플러그인을 사용한다고 언급하면 ​​http://malsup.com/jquery/form/입니다. 일부 샘플 코드는 여기에 있습니다 : http://pastie.org/584993

내가 u는 내가 필요로하는 것을 이해할 수 있다고 생각 나는 모든 제안과 답변 : 감사를 appriciate!

답변

3

JSON을 클라이언트에 다시 보냅니다. Status 매개 변수, Message 매개 변수 및 Url 매개 변수가 있어야합니다. 성공시 상태를 true로 설정하고 지시 할 페이지의 URL을 설정하십시오. 오류시 상태를 False로 설정하고 메시지를 오류 메시지로 설정하십시오. 클라이언트 쪽에서 상태를 사용하여 메시지를 리디렉션 또는 팝업할지 여부를 결정하십시오.

$.ajax({ 
    url: '/login.php', 
    dataType: 'json', 
    data: $('form').serialize(), 
    type: 'post', 
    success: function(data) { 
     if (data.Status) { 
      location.href = data.Url; 
     } 
     else { 
      alert(data.Message); 
     } 
    } 
});