2010-03-08 8 views
0

구매 프로세스를 진행하고 있습니다. 프로세스는 4 단계로 구성됩니다. 처음 두 단계는 모든 고객 데이터를 처리하는 단계입니다. 세 번째 단계는 AJAX로 서버에 데이터를 전송 한 다음 지불 양식을 보여줍니다. 결제 후 고객은 4 단계에서 고맙습니다.PHP 세션 대 jQuery show()/hide()

제 질문은 1 단계와 2 단계입니다. 지금 당장이 모든 단계는 같은 페이지에 있습니다. 2 개의 형태로 나누어 져 있습니다 <div> 님의 형태. 첫 번째 단계에서는 두 번째 div가 숨겨지고 (css : {display:none;}) 고객이 2 단계로 이동하면 첫 번째 div는 jQuery hide()으로 숨겨지며 두 번째 div는 jQuery show()으로 표시됩니다.

내 문제는 내가 분명히 지금 작동하지 웹 브라우저에서 "뒤로"- 버튼을 사용하여 1 단계로 돌아가 고객 수있는 가능성을 원하는 것입니다. 거기에 어떤 순수한 자바 스크립트 솔루션이 있나요? 우리는 사용자들에게 어쨌든 js를 활성화 할 것을 요구할 것입니다. 아니면 세션을 사용하는 것이 더 좋습니까? 사이트는 PHP를 기반으로합니다.

내 생각과 문제를 이해하는 사람이 있다면 우리는 볼 수 있습니다 ..

답변

1

URL 조각 (# 다음의 비트)을 변경하면 브라우저 기록 항목이 만들어집니다. 많은 웹 응용 프로그램은이 기능을 활용하여 사용자가 설명하는 것을 수행합니다. jQuery BBQ plugin (데모 here)을 살펴보십시오.

1

아약스와 뒤로 가기 버튼은 일반적으로 함께 잘 재생되지 않습니다. "뒤로"걸릴 링크를 제공해야합니다. 그러나 첫 번째 양식을 다시 제출하면 문제가 발생합니까? 여분의 항목이나 고아 항목이 남아 있습니까?

+0

+1 폼을 다른 페이지로 나누면 한 번에 모든 페이지가 아닌 다른 페이지로 이동하여 데이터의 유효성을 검사 할 수 있습니다. 인생을 더 쉽게 만들 수 있습니다. – Jeremy

0

가장 쉬운 속임수는 (신뢰할 수있는 것은 아니지만) "window.unload"이벤트를 특별히 수신하는 javascript 기능을 갖는 것입니다. 사용자가 양식의 두 번째 부분을 볼 때만 해당됩니다. 제출 버튼이나 다른 페이지로 이동하기 위해 설정 한 항목 (예 : 링크)을 누르지 마십시오.

하지만 사용자가 실제로 페이지를 떠나길 원한다는 점에서 이는 상당히 방해가됩니다. 사용자가 다른 폼 (원하는 것을 포함하여)을 남기지 않고 두 번째 폼에서 뒤로 클릭하는 경우에만 false를 반환하려는 경우처럼 타이밍을 올바르게 설정하는 것이 어렵습니다. 창문을 실제로 닫으려고하면 망칠 수 있습니다 (침해하지 않도록 노력해야합니다). 그리고 기본적으로, 내가 아는 한 사용자가 뒤로 버튼을 클릭하기위한 크로스 브라우저 자바 스크립트 이벤트가 없습니다. 그러나 다른 누군가는 그렇지 않을 수도 있습니다.

하지만 타이밍을 맞추고 위험을 감수하면서 신경 쓸 필요가 없다면 깔끔한 트릭 일 것입니다.