팝업창으로 POST 전송 후, 파이썬 CGI로 출력

sagonam의 이미지

안녕하세요, 파이썬 CGI를 이용하여 간단한 웹사이트를 구성 중인데요.

메인 페이지에서 팝업창으로 데이터를 전송하려 하는데, 구현이 되지 않아 도움을 구합니다.

IE에서는 동작을 하는데, 파이어폭스와 크롬에서는 동작하지 않네요.
(TypeError : form is null 발생합니다.)

조언 부탁 드립니다...

1. 메인페이지 코드

<script type="text/javascript">
  function popupWindow(form){
    var url = "./customerinfo.cgi";
    var title = "CustomerInfo";
    var style = "width=972;";
    window.open(url, title, style);
    form.submit();
  };
</script>
<body>
<form action="./customerinfo.cgi" method="post" target="CustomerInfo">
<label onclick="javascript:popupWindow(this.form)" for="test">
<h>test</h>
<input name="test" id="test" type="hidden" value="한글데이터"></input>
</label></form>
</body>

2. 파이썬코드

#!/usr/bin/python
 
import cgi;
import cgitb;
 
cgitb.enable();
print "Content-Type: text/plain\r\n";
 
form = cgi.FieldStorage();
for name in form.keys():
    print "Input: " + name + " value: " + form[name].value + "";
 
print "Finished!";

sagonam의 이미지

메인페이지 자바스크립트 코드 중, 함수 호출 부분을 수정하여 해결하였습니다.

<body>
<form id="form1" action="./customerinfo.cgi" method="post" target="CustomerInfo">
<label onclick="javascript:popupWindow(document.getElementById('form1'))" for="test">
<h>test</h>
<input name="post_test" id="test" type="hidden" value="한글데이터"></input>
</label></form>
</body>
sagonam의 이미지

다음과 같이 수정해도 문제가 해결되네요.

(기존) javascript:popupWindow(this.form)
(수정) javascript:popupWindow(this.parentElement)