팝업창으로 POST 전송 후, 파이썬 CGI로 출력
글쓴이: sagonam / 작성시간: 월, 2016/10/17 - 6:42오후
안녕하세요, 파이썬 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!";Forums:


해결
메인페이지 자바스크립트 코드 중, 함수 호출 부분을 수정하여 해결하였습니다.
<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>추가
다음과 같이 수정해도 문제가 해결되네요.
(기존) javascript:popupWindow(this.form)
(수정) javascript:popupWindow(this.parentElement)
댓글 달기