2012-11-12 8 views
0

맨 아래에 양식이있는 페이지가 있습니다. 폼 액션에서 조각 식별자를 사용합니다. 폼에 오류가있을 때 폼에 다시 표시되기 때문에 사용자가 수정을하기 위해 아래로 스크롤하지 않아도되기를 바랍니다.302 리디렉션에서 조각 식별자 제거

양식이 성공적으로 처리되면 동일한 페이지로 리디렉션을 수행하고 확인 메시지를 표시합니다. 내가 가지고있는 문제는 브라우저가 preserves the fragment identifier upon 302 redirects이라는 것입니다. 브라우저가 조각 식별자를 지우거나 제거하도록 강제하는 트릭이 있습니까?


사용자 프로필 페이지를보고 있는데 페이지에 주소 양식이 있다고 가정 해 보겠습니다. 양식 작업은 /user/profile#AddressForm이됩니다. 양식이 오류와 함께 제출되면 페이지가 자동으로 주소 양식으로 스크롤되어 사용자가 오류를 수정할 수 있습니다. 오류가 없으면 부분 식별자가없는 /user/profile으로 리디렉션하고 싶습니다. 내가 겪고있는 문제는 브라우저가 조각 식별자를 유지하고 페이지가 맨 위에 머물지 않고 폼으로 스크롤된다는 점입니다.

답변

1

업데이트

지금 내가있다

header ('Location: /user/profile#top'); 

존재하지 않는 앵커로 리디렉션을 제안 실제 문제가 무엇인지 볼 수있다.

$form->setAction ($this->getRequest()->getRequestUri()); 
+0

나는이 문제를 이해하지 못한다고 생각합니다. 나는 "행동"이라는 형태를 설정하는데 문제가 없다. 브라우저가 프래그먼트 식별자를 유지하고 있기 때문에 나중에 리디렉션을 수행하는 데 문제가 있습니다. – Sonny

+0

나는 생각한다. 브라우저는 작업 속성이 설정되지 않은 경우에만 조각 식별자를 유지합니다. 조치가 명시 적으로 설정되면 작동하지 않습니다. – akond

+0

나는 항상 행동을 취했다. 어느 쪽이든, 나는 포스트 후에 리다이렉트를하고있어, 폼 동작은 더 이상 요소가 아니다. – Sonny

관련 문제