2009-06-22 2 views
0

유효성 검사 및 데이터 제출을 위해 AJAX (w/jQuery)를 사용하는 많은 양식이 있습니다. 양식을 올바르게 채울 때 PHP 스크립트에서 허용되는 응답을받은 후 window.location을 사용하여 페이지를 리디렉션합니다. 새 페이지에서 세션 변수 (AJAX 호출 후 설정)를 사용하여 적절한 내용을 표시합니다. 이것이 표준 관행인지 또는 제게 제안 해주십시오.AJAX를 사용하는 양식의 적절한 리디렉션

감사합니다.

답변

1

제출 콘텐츠를 저장하기 위해 $ _SESSION 변수를 사용해야하는 이유가 있습니까? 표준 연습은 AJAX를 통해 양식의 유효성을 검사하지만 유효성 검사 후 표준 방식 (즉, $ _GET 또는 $ _POST를 통해)으로 제출하는 것입니다. 이렇게하면 세션에 아무 것도 저장할 필요가 없으므로 양식을 제출하고 그 결과를 가장 널리 채택 된 방식으로 표시 할 때 디버그 할 가능성이 적습니다.

+0

또한 Javascript를 지원하지 않는 브라우저에서도 계속 작동합니다. – MSpreij

+0

나는 더 분명해야했다. ajax를 통해 호출 된 폼 프로세서 스크립트는 POST 값을 처리하여 db에 삽입합니다. 삽입 후, 삽입 ID를 세션에 넣고 요청 페이지에 'ok'를 리턴합니다. 요청 페이지는 window.location 콜백을 수행하고 사용자를 새 페이지로 안내합니다. 새 페이지는 세션에 저장된 ID로 쿼리를 수행하고 정보를 표시합니다. 하지만 당신의 제안은 훌륭합니다. 감사! – pistolshrimp

+0

세션은 여전히 ​​불필요한 것처럼 보입니다. 삽입 ID를 AJAX 호출로 양식 필드로 리턴하고 제출 된 양식 데이터에서이를 검색하여 결과 페이지에 표시 할 수 있습니다. 모든 데이터를 한 곳 (이 경우에는 $ _GET 또는 $ _POST 배열)에 유지하는 것이 좋습니다. – Evan

0

AJAX의 이점은 일반적으로 리디렉션/새로 고침을 실제로 수행하지 않고도 양식을 제출할 수 있도록하기 위해서입니다. 목적지 URL로 양식 POST를 보내고 거기에서 적절한 위치로 리디렉션하거나 발생했을 수있는 오류를 표시하는 양식으로 다시 보내면 동일한 기능을 사용할 수 있습니다. AJAX를 사용하여 제출 전에 양식을 검증하여 사용자가 오류를 수정하기 위해 양식으로 리다이렉션을 다시 저장할 수 있지만, 이는 실제로는 단지 편의성입니다. 또한 클라이언트 측 유효성 검사에 의존 할 수 없으므로 서버 측에서 사용자 데이터를 제출 한 후에는 AJAX 유효성 검사를 잊어 버릴 수 있으므로 유효성을 검사해야합니다.

관련 문제