Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

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

2013-10-06 by 편리

이런 경우가 있다. 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를 이용해 데이터를 가져오는 것도 가능하지만 위와 같이 사용하면 페이지의 모든 컨텐츠 로딩이 완료된 후 자바스크립트를 실행할 수도 있다.

Post navigation

Previous Post:

이건 버그인가?

Next Post:

nginx에서 wordpress 이미지 업로드 때 http error 해결법

2 Commments

  1. 손혜인 says:
    2018-11-21 at 13:41

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

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

    Reply
    1. 편리 says:
      2018-11-21 at 14:09

      안녕하세요.
      word 파일 생성 부분의 코드는 가지고 있지 않습니다. 그리고 위에서 언급한 phpword 라이브러리의 지원이 종료된 것으로 보입니다. 대신 다른 PHPWord 라이브러리가 제공되고 있고 아래의 샘플 예제가 원하는 것이 아닐까 추측해 봅니다.

      https://github.com/PHPOffice/PHPWord/blob/develop/samples/Sample_07_TemplateCloneRow.php

      Reply

Leave a Reply Cancel 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.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes