- ベストアンサー
window.open()で開いたウィンドウにパラメータを渡す。
まずは下記のHTMLファイルをご覧下さい。 ------------------------------------------------- <HTML> <HEAD> <TITLE>TEST01</TEST> <ScriptLanguage="JavaScript"> <!-- function new_win() { window.open("new_win1.cgi","POPUP", "scrollbars=1,status=0,location=0,toolbar=0,menubar=0,resize=1,height=450,width=300"); } //--> </script> </HEAD> <BODY> <FORM NAME="SEND_DATA"> <INPUT TYPE="hidden" NAME="par01" VALUE="aaaa"> <INPUT TYPE="hidden" NAME="par02" VALUE="bbbb"> <INPUT TYPE="hidden" NAME="par03" VALUE="cccc"> <INPUT TYPE="button" NAME="btn01" VALUE="SEND" onClick="new_win()"> </FORM> </BODY> </HTML> ------------------------------------------------ 以上です。このHTMLファイルを動かすとボタンだけが表示されます。 そしてそこのボタンをクリックしますと、新しいウィンドウが 出力され、そこには"new_win1.cgi"の処理結果が表示されます。 そこで、そのCGIを動かす時に"SEND_DATA"というフォーム内の データも一緒に送信したいのですが、どのようにやればよろしいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フォームの名前(SEND_DATA)が固定であるなら、以下のように記述することでSEND_DATA内のデータを取得し、引数に付加することができます(但し、btn01も取得します)。 フォームの名前が固定でないなら document.forms[0].elements[0].valueのようにアクセスする必要があります。 function new_win() { var url = "new_win1.cgi"; for(i=0; i<document.SEND_DATA.length; i++){ if( i == 0 ){ url += "?"; } else{ url += "&"; } url += document.SEND_DATA.elements[i].name + "=" + document.SEND_DATA.elements[i].value; } window.open(url,"POPUP", "scrollbars=1,status=0,location=0,toolbar=0,menubar=0,resize=1,height=450,width=300"); }
その他の回答 (1)
環境変数をCGI側で取得してあげれば、きちんと CGIで使用できるので、取得してあげましょう。 取得の仕方は、cgi-lib.plをダウンロードして くれば、READMEに書いてあるのではないでしょうか。 もし自分で作成するというのであれば、Perlの 参考書などを購入してくれば、必ず書いてある ので、それを参考していただければいいと思います。 参考までに書きますと、 技術評論社出版 藤田 郁+三島俊司著 CGI&Perlポケットリファレンス(P.27) という本に載っています。 ではでは☆
お礼
せっかく書籍まで教えていただいたのに。 身の回りが忙しくて、本を買いに行っている暇が ありませんでした。(泣) 今度、時間があったときにでもジックリと読んで みたいと思います。ありがとうございました。
お礼
なるほどナルホド・・・ さっそく試してみたいとおもいます。 ありがとうございました。