• ベストアンサー

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"というフォーム内の データも一緒に送信したいのですが、どのようにやればよろしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tscom-m
  • ベストアンサー率44% (13/29)
回答No.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"); }

yo-he
質問者

お礼

なるほどナルホド・・・ さっそく試してみたいとおもいます。 ありがとうございました。

その他の回答 (1)

noname#9414
noname#9414
回答No.1

環境変数をCGI側で取得してあげれば、きちんと CGIで使用できるので、取得してあげましょう。 取得の仕方は、cgi-lib.plをダウンロードして くれば、READMEに書いてあるのではないでしょうか。 もし自分で作成するというのであれば、Perlの 参考書などを購入してくれば、必ず書いてある ので、それを参考していただければいいと思います。 参考までに書きますと、 技術評論社出版 藤田 郁+三島俊司著  CGI&Perlポケットリファレンス(P.27) という本に載っています。 ではでは☆

yo-he
質問者

お礼

せっかく書籍まで教えていただいたのに。 身の回りが忙しくて、本を買いに行っている暇が ありませんでした。(泣) 今度、時間があったときにでもジックリと読んで みたいと思います。ありがとうございました。

関連するQ&A