• ベストアンサー

フォームでCGIにとばした処理結果を。。

はじめまして。 JavaScriptもHTMLもCGIもほとんど初心者です。 現在フリーのCGI(Perl:アンケートフォーム)を使用しようとしてるのですが、HTMLファイルのformにあるactionで CGIにとばして、その結果を(JavaScriptで開いた?)新しいウィンドウに表示したいのですが、可能でしょうか? さらに、出来ればその結果が表示される新しいウィンドウにはメニューバーやスクロールバーをなくして、「閉じる」というボタンをつけて閉じるようにしたいのですが、それも可能でしょうか? 何卒よろしくお願いします。 =====

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

  • ベストアンサー
noname#199778
noname#199778
回答No.1

CGIの処理結果を別ウィンドウで受け取る、その開いた別ウィンドウにメニューバーやスクロールバーを表示させない、という点については、JavaScriptとHTMLで可能と思います。 HTMLファイルのCGIを呼び出すform要素を、下記のようにすれば、一応はご質問文で言われている動作になるのではないかと思います。 <form action="hoge.cgi" target="result_win" onSubmit="window.open('','result_win','menubar=no, scrollbars=no');"> 上記ソースでは、そのフォームが送信されたときに、JavaScriptで、result_winと言う名前をもつメニューバーとスクロールバーが非表示の空ウィンドウを開き(「onSubmit="window.open('','result_win','menubar=no, scrollbars=no');"」がその処理を指定している部分になります)、そのウィンドウをターゲットにして(「target="result_win"」がその指定になります)フォーム送信が行われるようになっているはずです。 JavaScriptのwindow.open()の処理についての詳細は、参考URLに詳しいと思いますので、良ければご参照ください。 参考URLは、「とほほのWWW入門」内のページです。 新しいウィンドウに対して、「閉じる」ボタンを追加する点については、CGI自体を書き換える必要があると思います。 参考になれば…

参考URL:
http://tohoho.wakusei.ne.jp/js/window.htm#open
nichibe
質問者

お礼

コメントありがとうございます!! form内をアドバイスどおり変えたら、CGIの処理結果が新しいウィンドウで開くようになりました。 lead1976さんの解説も分かりやすく理解することが出来ました。ありがとうございます。 また、閉じるボタンを追加するにはCGIをどのように書き換えたらいいのでしょうか? ちなみに、CGIファイルの結果を表示する部分の最後尾に print "<p align=center><a href="javascript:window.close()">閉じる</a>\n"; &foot;  #フッタ表示 と、print部分を加えたらInternal Server Errorになりました。。。 もし、お時間ありましたらご教示いただけますでしょうか? よろしくお願いします!

すると、全ての回答が全文表示されます。

関連するQ&A