[PHP] post로 넘겨받은 값을 다른 페이지에 post로 넘기기

이런 경우가 있다. PHPWord를 이용해 워드 파일을 생성하고 다운로드하는 것인데 사용자가 폼에서 입력한 값을 이용해 워드파일을 생성해야 한다. 그런데 워드파일을 다운로드 후에 완료 안내 페이지를 보여줘야할 경우가 생겼다. 자바스크립트나 기타 여러 방법으로 다운로드 후 완료 페이지로 이동을 하도록 하면 되는데.. 여기서 문제가 발생한다. 워드파일을 생성하는 파일에는 php 코드외에 html 태그가 들어가 있으면 파일 다운로드도 되지 않고 파일 내용이 페이지에 표현되는 것이다.

그래서 생각한 방법이 사용자 폼 -> 완료 페이지 -> 워드파일 생성 이 순서이다. 사용자 폼에서 받은 post 데이터를 완료 페이지에서 워드파일 생성 페이지로 다시 post로 넘겨주는 것이다. 이것을 위해서는 foreach를 사용하면 간단하다.

<form name="userform" method="post" action="./wordmake.php">
<?php
foreach($_POST as $key=>$value) {
    echo '<input type="hidden" name="'.$key.'" value="'.$value.'">';
}
?>
</form>

위와 같이 완료페이지에서 hidden 필드를 갖는 폼을 만들어서 워드파일 생성 페이지로 넘기면 된다.

<script>
document.userform.submit();
</script>

그런데 이렇게 페이지를 구성했을 경우 문제가 또 발생하는데 자바스크립트로 폼을 submit 하게 되면 완료페이지의 이미지나 다른 컨텐츠가 화면에 모두 표시되기 전에 자바스크립트가 실행이 되서 페이지 표시가 제대로 되지 않는 것이다. 이럴 경우는 jQuery를 사용해서 아래와 같이 하면 된다.

<script>
$(window).load(function() {
    document.userform.submit();
});
</script>

load는 ajax를 이용해 데이터를 가져오는 것도 가능하지만 위와 같이 사용하면 페이지의 모든 컨텐츠 로딩이 완료된 후 자바스크립트를 실행할 수도 있다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

2 thoughts to “[PHP] post로 넘겨받은 값을 다른 페이지에 post로 넘기기”

  1. 이부분에 대한 구현소스나 방법을 아직 가지고 계실까요?
    제 생각에도 이런 방식으로 폼 내용을 워드로 받아서 저장 구현을 해보려고 합니다만
    phpword 홈은 전부 영문이라 알수가 없어서요 ㅠㅠㅠㅠ
    자세한 설명 안해주시더라도 소스라도 공유해주시면 감사합니다 ㅠㅠ!!

    회사 서버에 올려서 구동되는지 확인해보고 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.