ifram으로 form 응답값 받기

less than 1 minute read

코드 구조

<div>
  <form action="/post-handler" method="post" target="intro__frame">
    <input name="nickname" value="runningwater" />
    <button type="submit">제출</button>
  </form>
</div>
<iframe
  name="intro__frame"
  width="400px"
  height="400px"
  title="iframe 타이틀"
></iframe>

우선 form 태그를 살펴보면 action(데이터를 보내는 url)은 /post-handler로 되어 있고, post 방식으로 보내고 target은 iframe의 name이 들어가 있다.

form의 데이터(여기서는 nickname)를 처리하는 코드는 아래와 같다.

router.post("/post-handler", function (req, res) {
  const { nickname } = req.body;
  // nickname을 가지고 무언가 처리
  res.send("처리가 완료되었습니다.");
});

위와같이 되면 iframe에 처리가 완료되었습니다 라는 문구가 뜨게된다.

즉 페이지를 이동시키지 않고 form의 결과값이 iframe에서 보여지는 형태가 됨. 페이지를 이동하지 않으니 부모 페이지의 함수도 호출할 수 있다.

Leave a comment