- ベストアンサー
CGI動作後に元のページに戻る方法
Perl , javascript 初心者です。 あるページの一番下に,チェックボックスを設置して選択してもらうという簡単なアンケートを作っています。 submit ボタンを押した後,CGI(Perl) で処理を行い,その後元のページの元いた場所(アンケートがあるところ)を表示させることはできますか? また,できれば submit ボタンの横に「ご協力ありがとうございました」というコメントを表示したいと思います。 良い方法があれば教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
perlでは、 print "location: (URL)\n\n"; これでページを呼び出します。 同じフォームに戻らなくても、お礼のページを作った方が良いと思います。 どうしても、フォームに戻るなら、CGIから戻ってきたことが判るようにURLの後ろに「?back」などと識別コードを付けます。 そして、HTML内にJavaScriptを埋め込み、自分自身のURLを調べれば、普段のURLと違うことが判ります。
その他の回答 (1)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
色々な方法がありますが、もっとも簡単なのはそのページ自体を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>
お礼
回答をありがとうございます。 今回はNo.1の方の方法を使わせていただきましたが, 教えて頂いた方法も今後の参考にさせていただきます。
お礼
お礼がおそくなってすみません。 教えて頂いた方法でできました。 ありがとうございました。