2011-04-18 5 views

답변

1

양식을 성공적으로 제출 한 후 리디렉션을 수행하십시오. 할 일은 없지만 $ _POST를 지울 것입니다.

header('Location: http://www.example.com/form.php'); 

이미 사용중인 페이지로 리디렉션하려는 것 같습니다. 확인 메시지를 표시하려면 $ _GET 매개 변수를 URL에 추가하십시오.

이렇게하면 사용자가 페이지를 다시로드 할 때 양식이 다시 제출되지 않습니다.

0

jQuery를 믹스에 추가하면 자바 스크립트가없는 사용자는 더 이상 양식을 사용할 수 없습니다. 가장 좋은 해결책은 백엔드에서 양식을 두 번 보낼 수 없도록하는 것입니다.

+0

리디렉션 JS가없는 사용자들 지원하다. 나는 그것들에 대해 걱정하지 않기로 결정했고 많은 JS 기능을 추가했다. 불행히도 그들이 JS를 지원하지 않는다면 내 페이지에서 너무 멀어지지 않을 것입니다. 나는 많은 사람들의 이익을 위해 소수의 몰락을 선택했다고 생각합니다. :) – santa

+0

사실,하지만이 문제가 발생하면 프론트 엔드보다 내 논리를 리팩토링하는 것이 좋습니다. –

1
+0

이 링크는 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. – LaGrandMere

1

난 당신이 그들이 새로운 정보로 서로를 보낼 수 있도록 양식을 재전송하지 않고 페이지를 다시로드 버튼에 찾고있는 가정합니다?

IE : 문의 양식을 제출했습니다. 이제 "다른 페이지 보내기"를 사용하여 페이지를 다시로드해야 양식을 다시 표시 할 수 있습니다.

새로 고치는 대신 jQuery 함수를 사용하여 페이지를 다시로드 할 수 있습니다. 페이지를 동일한 페이지로 "리디렉션"하는 새로 고침 기능을 만드십시오. 페이지를 얻을 PHP 코드

PHP

으로 jQuery를

var reloadPage = window.location.href; 
$('#[button]).on('click',function(){ 
    window.location.replace(reloadPage); 
}); 

사용

경우

<?php 
    $url = (!empty($_SERVER['HTTPS'])) ? 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 
?> 

jQuery를 정말 거기에 여전히 궁금하기 위해 사용

<script type="text/javascript"> 
$(document).ready(function(e){ 
    $('#[button]).on('click',function(){ 
     window.location.replace('<?php echo $url;?>'); 
    }); 
}); 
관련 문제