• 締切済み

処理の切り分けについて

現在、フォームから情報を処理するCGIをperlで書いています。 フォームの入力、確認、結果の表示を一様のながれで処理するプログラムはかけました。 この、入力画面にて、押したボタンによって、入力された情報は同じで、処理先のみを分けることはできま線でしょうか? 具体的には、確認画面へ飛ぶボタンと、その入力を処理にかけるページに飛ぶボタンの2つをひとつのフォームに共存させたいのです。 どうかよろしくお願いします。

みんなの回答

  • sight
  • ベストアンサー率53% (199/370)
回答No.1

今ひとつ状況がわからないので、誤解があるかもしれませんが、 もし、確認画面というのがCGIプログラムではないとか、そうであるとしてもURIが異なる場合は、 TYPE="submit" を使わずに TYPE="button" で(別にイメージとかでもいいですけど)ボタンを2つ作り、JavaScriptのonClickイベントを拾ってFormのAction先を変更してからform.submit()してはいかがですか? もし、確認と、処理と、同一のCGIプログラムで行うんでしたら、押下されたType="submit"のボタンだけが満足な要素として送られるはずですので、それぞれのボタンのnameとvalueの組み合わせをCGIプログラム側で拾って条件分岐してあげればいいとおもいます。

bukas
質問者

お礼

JavaScriptには頼らずやりたかったので、2つ目の方法をとりました。同一フォームでsubmitが2回使えることを知りませんでした。どうも、ありがとうございました。

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

関連するQ&A

  • フォームメール確認画面から戻るためには?

    perlを使って申込みフォームを作っています。ファイルとしてはa.htmlを使ってまずフォーム入力欄を作りました。 そこからa.cgiに飛ばして確認画面を作りました。そこからが問題です。もう一つamail.cgiを作りそこにいった時点で指定メールに送るように作ってあります。 しかしa.cgiで入力項目を確認してもらった時に入力項目が間違っていた場合に戻るボタンを設けなければいけませんが、戻るボタンでどのようにa.htmlにもどせばいよいのか解りません。 具体的にどのようなソースを使えば良いのか解らないのでどうか教えて頂けないでしょうか? お願します。

    • 締切済み
    • CGI
  • フォーム入力後の確認画面表示について

    こんにちは。tyabudaiと申します。 よろしくお願いします。 現在、私のサイトでCGIを使って投稿するフォームを作成しています。 流れは以下のようなものです。 1.フォームに内容を入力、送信ボタンでCGI起動。 (以下CGI) 2.入力内容をサーバのファイルに書込む。 3.送信完了のメッセージを表示 そして今、1と2の間に確認画面を表示する処理を 追加したいのですが、どのような処理にするのでしょうか? ソースについては勉強しますので、大まかな流れを教えて いただけないでしょうか?

    • ベストアンサー
    • CGI
  • CGI/Perlでメールフォームを作るには。

    CGI/Perlでメールフォームを作るにはHPのトップページ(ソースコード)にCGI/Perlのプログラムを入力すればメールフォームは使用できるようになるのでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • perlの処理を遅くしたい

    CGI初心者です。わかる方教えてください。 少々古いですがactiveperl apache1.3.12を利用してperlプログラムを自宅のみで使うCGIプログラムをWINDOWS上で起動しています。 処理が長くまた同時に複数の処理をperlで処理します。ブラウザ送信ボタンよりCGIを実行してperl.exeを合計5つぐらい同時に起動します。 タスクマネージャーのプロセスの優先度の設定は実行当初「普通」になっていますが,これを実行当初から「低」にしたいと思っていますが やり方がよくわかりません。CGIの書き方,apacheの設定,ショートカットの書き方でできるんではないかと思っていますが,ご存じの方教えてください。OSはWINXPです。宜しくお願いします。

  • “警告:ページの有効期限切れ”と“表示されません”の違い

    ここOKWebやGoogleでも検索しましたがわからなかったので質問させてください。 下記のような流れで動くCGIを組んでおります。 先頭ページ(CGI-1)    ↓    ↓POSTにてデータ送受    ↓ 入力フォーム(CGI-2)    ↓    ↓POSTにてデータ送受    ↓ 確認フォーム(CGI-3) 上記の流れは正常に動作しているのですが、 確認フォーム(CGI-3)からブラウザの戻るボタンにて戻ったとき、 自分の確認した端末では“警告:ページの有効期限切れ”と表示されるのですが 他のある端末だと“表示されません”になってしまいます。 本来、“警告:ページの有効期限切れ”と表示されるのが正しいと思っているんですが、 なぜ“表示されません”になってしまうんでしょうか?

    • 締切済み
    • CGI
  • 入力フォームの確認画面からの「戻る」について

    過去の質問とか参照して同じような件が出てくるのですが、今ひとつはっきりしないところがあるので質問させていただきました。 HTMLでアンケートなどの入力フォームを作り、送信ボタンのクリックでCGI(Perl)にて「確認画面」or「必須項目のエラーページ」を表示させているのですが、修正のために戻るボタンをクリックすると入力フォームで入力した情報がクリアされて、再度初めから入力しないといけません。これはブラウザの問題(?)によるところのようですが、その1台のマシンだけではなく、他のマシンとかで試してみると、入力情報がそのまま残って戻れる場合もあるようです。情報がクリアされる場合は再度そのページを読み込みに行っているからで初期化された状態になるそうです。 そこらへんを踏まえて以下4点回答を頂きたいのですが、 (1)戻るボタンで入力情報がクリアされてしまうのはプログラムで情報を保持したりしない限り防ぐことが出来ないのか? (2)入力情報がそのまま残って表示される場合とはどういう状態・設定の時なのか? (3)全てはブラウザの環境に起因しているものなのか? (4)Netscapeはどうなのか? 的確にお答え頂けると非常に助かります。 ※以上の動作を確認しているブラウザは全てIEで、バージョンは5.5もしくは6です。

    • ベストアンサー
    • CGI
  • タグ CGI

    ホームページ上の情報入力フォームで <input type="submit" value="送信する" /> で送信ボタンを押すと入力内容の確認ページに飛ぶのですが 最初の入力ページが縦幅が大きいせいで次の画面がページ上部に 表示されているが画面は下部を表示しているため真っ白になって しまいます。送信ボタンを押した後次のページで上部を表示させる 方法はありますか? 最初の入力フォームはページがありその中央にIフレームで表示させています、フォームはCGIにて動作します。

    • 締切済み
    • CGI
  • フォームの確認画面について

    お世話になります。 現在アンケートフォームを作成し、そのデータをtxtファイルに保存するというプログラムを作成しました。そこでフォームに入力された確認画面を表示させ、確認画面で送信ボタンを押すと、データが蓄積されるプログラムに変えたいと思ってます。 今現在はフォームはhtml cgiはperlで作成してます。 実際にどのようにすればいいかが分かりません。 フォーム(html)→確認用フォーム(cgi)→蓄積用cgiという流れでいいのでしょうか? また、確認用のフォームには戻るボタンを作りたいのですが、戻った時に、入力したデータは保持しときたいのですが。 よろしくお願いいたします。 データ蓄積用cgiプログラム #! /usr/bin/perl require './cgi-lib.pl'; $answer = 31; $ansfile = "/tesuto.txt"; &ReadParse(*in); $name = "てすと"; for($n = 1; $n <= $answer; $n++ ) { $no[$n] = $in{"no$n"}; } open (FILE,">>$ansfile"); flock (FILE,2); print (FILE "\"", $name); for($i = 1; $i <= $answer; $i++ ) { $no[$i] =~ s/\"/""/g; print FILE "\"\,\""; print FILE $no[$i]; } print FILE "\"\n"; flock(FILE,8); close(FILE); print "Content-type: text/plain\n\n"; print "<HTML><BODY>\n"; print "<META http-equiv=\"refresh\" content=\"0;URL=http://○○○.html\">\n"; print "</body></HTML>"; exit;

    • ベストアンサー
    • CGI
  • フォームに入力した情報をそのフォームに反映するには?

    http://f29.aaa.livedoor.jp/~unyu/joban/unyu.cgi?line=oer1000 上記のサイトのように、情報をフォームに入力し投稿ボタンを押すと入力したフォームに反映/保存され、その情報を他の人も変更(投稿)/回覧できるようにするにはどのようにすればよいのでしょうか? CGI/perlなどを探し、掲示板のプログラムを改造したりしましたが分かりません。回答お願いします。

    • ベストアンサー
    • CGI
  • PerlでCGIの書き方

    今、HTML:Templateを用いてCGIのプログラムを書いています。 基本的にCGI上のボタンをおすとPOSTで情報をわたして、次のCGIにいき、そこからTMPLを読み出して、画面を表示してるのですが、画面場のボタンをおしてもCGIを更新せずに、Perlの実行だけすることは可能ですか?あるいは、POSTでCGIに届いた情報をIF文で中身を確認して、表示するTMPLをかえて、Perlの実行も行うのが普通のやりかたなのでしょうか? あまりよくわからずにネットだけの情報をたよりにプログラミングをしているので設計の仕方など分からないことが多々あります。 どなたかCGIに詳しい方ご返答おねがいします。

    • ベストアンサー
    • CGI
アプリに登録できない
このQ&Aのポイント
  • アプリに登録できない問題に関する相談やトラブルの経緯、試したこと、エラーについて教えてください。
  • お使いの環境について、パソコンまたはスマートフォンのOSや接続方法、関連するソフト・アプリなどを教えてください。
  • この質問は「ブラザー製品」に関するものです。
回答を見る

専門家に質問してみよう