• ベストアンサー

CGI動作後に元のページに戻る方法

Perl , javascript 初心者です。 あるページの一番下に,チェックボックスを設置して選択してもらうという簡単なアンケートを作っています。 submit ボタンを押した後,CGI(Perl) で処理を行い,その後元のページの元いた場所(アンケートがあるところ)を表示させることはできますか? また,できれば submit ボタンの横に「ご協力ありがとうございました」というコメントを表示したいと思います。 良い方法があれば教えて下さい。

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

  • ベストアンサー
  • nine999
  • ベストアンサー率44% (512/1140)
回答No.1

perlでは、 print "location: (URL)\n\n"; これでページを呼び出します。 同じフォームに戻らなくても、お礼のページを作った方が良いと思います。 どうしても、フォームに戻るなら、CGIから戻ってきたことが判るようにURLの後ろに「?back」などと識別コードを付けます。 そして、HTML内にJavaScriptを埋め込み、自分自身のURLを調べれば、普段のURLと違うことが判ります。

km340
質問者

お礼

お礼がおそくなってすみません。 教えて頂いた方法でできました。 ありがとうございました。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

 色々な方法がありますが、もっとも簡単なのはそのページ自体をCGIで表示させる方法です。 ★たとえば、環境変数・フォーム・クッキー( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi#form_check )とかは、そうなってます。  あなたに、スキルがあれば拡張子はhtmlにもできる。同じサイトを( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/test.html#form_check )で呼び出しても同じ。  他にもrefreshを使うとか、HTTP応答ヘッダでlocation: URLを出力させてリダイレクトさせるとか CGI自体に作成させる方法  作成したフォームのあるHTMLのコードをそのままコピーして、CGIスクリプトの最終行に __END__  を書き、そのあとに、HTMLのソースをぺーストします。文字コードは本体と同じ 例) #!/usr/local/pin/perl CGIプログラム 処理後 print "Content-type: text/html\; charset=euc-jp\n\n"; while(<DATA>){print;} sub{} #略 # ・・・・・・・略 __END__ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> 以下略 <form action="[CGI名]#form" method="post" id="form"> ・・・ <input type="submit" value="送信"> </form> </body> </html>

km340
質問者

お礼

回答をありがとうございます。 今回はNo.1の方の方法を使わせていただきましたが, 教えて頂いた方法も今後の参考にさせていただきます。

関連するQ&A