- ベストアンサー
確認画面
例えばフォームなどでデータを入力してもらってそれを確認後に、最終的にボタンを押すと入力完了、としたいのですが、 今現在は入力するためのファイル(nyuuryoku1.cgi)、確認を出すファイル(nyuuryoku2.cgi)、最終的に入力するファイル(nyuuryoku3.cgi)と 3つを使っています。 これを1つにまとめることはできないのでしょうか? 何かよい方法あったら教えてください。 #perlです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まとめることは出来ると思いますよ。 要するにプログラム側で状況(入力された時なのか、確認する時なのか、最終入力なのか)が判断できれば良いので、 もし全て出力が伴うとした場合に、 最初のページ(HTML?) ↓実行(submit) 入力プログラムから表示(現状=入力) ↓実行(submit) 確認を表示(現状=確認) ↓実行(submit) 最後の入力 という風に「状況」を、例えばHTMLであれば、input type=hidden などで値を渡してあげ、 それをCGI側で振り分けてあげられれば良いのではないでしょうか。 もし意図している事と違うようでしたらすいません。 ご参考になれば・・・
その他の回答 (2)
- _mer_
- ベストアンサー率47% (27/57)
すいません、確認していたら投稿してしまいました(汗) 「もう少し…」から訂正させて下さい。 もう少し具体的に書くと、以下のprintに <input type="hidden" name="syori" value="nyuuryoku2"> というのを加えて頂いて、 受取るnyuuryoku1.cgi(同じもの)の中で、このnameがsyoriであって、 nyuuryoku2あれば確認を出す(nyuuryoku2.cgiの処理)という作業をするようにすればよいと思うのですが。
お礼
回答ありがとうございます。 あの後粘り強くやっていたらできました。 ありがとうございます。 HIDDENも活用しています。 ありがとうございました。
- _mer_
- ベストアンサー率47% (27/57)
同じCGIを指定するのは何ら問題ありませんよ。 上手くいかないのがどのような形なのかは、ソースを見ないと分からないのですが、 以下のお礼内の記述を拝見しましたが、以下のprintを出した時にsubmitした時の作業は 確認を出すと言う作業(nyuuryoku2.cgi内の処理)になりますでしょうか? それであれば、以下の「printを出す作業とは違うよ」とcgiに教える記述しなければなりません。 もう少し具体的に書くと、以下のprintに <input type="hidden" name="syori" value="nyuuryoku2"> というのを加えて頂いて、 受取るnyuuryoku1.cgi(同じもの)の中で、このnameを見て、 syoriであれば確認を出す(nyuuryoku2.cgiの処理)という作業をするようにすればよいと思うのですが。 いかがでしょうか。
お礼
回答ありがとうございます。 1番目の表示(入力フォーム)が以下のようなものだったとします。(nyuuryoku1.cgi) print "<FORM METHOD=POST ACTION=nyuuryoku1.cgi>\n"; print "<TABLE>\n"; print "<TR><TD WIDTH=80>タイトル</TD><TD><INPUT TYPE=TEXT NAME=TITLE CLASS=TEXT SIZE=20 STYLE=IME-MODE:ACTIVE AUTOCOMPLETE=OFF></TD></TR>\n"; print "<TR><TD WIDTH=80 VALIGN=TOP>本文</TD><TD><TEXTAREA ROWS=10 COLS=100 NAME=NAKAMI STYLE=IME-MODE:ACTIVE></TEXTAREA></TD></TR>\n"; print "<TR><TD WIDTH=80 VALIGN=TOP>PASSWORD</TD><TD><INPUT TYPE=PASSWORD CLASS=TEXT NAME=PASSWORD SIZE=20></TD></TR>\n"; print "<TR><TD><BR></TD><TD><INPUT TYPE=SUBMIT CLASS=BUTTON VALUE=入力>\n"; print "</TABLE>\n"; Actionでcgiを指定しますよね? この時に自分(nyuuryoku1.cgi)と同じものを指定してもいいものなのでしょうか? ためしにやってみたところ正常に動かないのですが。 よろしくお願いします。