最新閲覧日:

PerlでCGIを作成しております。
フォームによる申込みページの作成過程における必須項目チェックの後処理で悩んでいます。
チェック自体は簡単に行えるのですが、その結果NGだった項目に関してアラートページを表示し、前ページに戻って該当部分の再入力をさせたいと思います。
ところが戻ると全ての項目が白紙に戻っています。(当たり前なのでしょうが・・・)
回避する手段として一時ファイルに入力項目をしたためておいてそれを書き戻す等考えてみたのですが、どうもスマートでない気がします。
検索ページや書籍でいろいろ調べてみましたが良い代替案が見つかりません。
もし定番の方法をご存じでしたら教えて頂けないでしょうか。

A 回答 (3件)

>アラートページを表示し、前ページに戻って該当部分の再入力


チェックするCGIの出力を次のようにしたらどうでしょうか。
-----------
エラーです
○○を再入力してください。

すべてまたはエラー項目の入力フォーム
(送信されたデータが入っている)

送信ボタン リセットボタン
-----------
    • good
    • 0
この回答へのお礼

貴重な案有り難うございます。
なるほど!これならアラートページを少々改造すれば綺麗に収まりそうです。
早速試してみたいと思います。

お礼日時:2001/07/02 21:24

JavaScript:history.back()



で、戻ったらダメですか?

普通の場合は、ボタンやハイパーリンクを使って
JavaScript で戻ります。
そうじゃない場合は、
「ブラウザの戻るボタンで戻って下さい」という表示を出します。
    • good
    • 0
この回答へのお礼

ご回答有り難うございます。
実はa-kumaさんへのお礼でも書きましたがPerlで何とか、と思っております。
というのもJavaScriptは無効にされてたら思った動作にならないからというのが念頭にあるからなのです。
でもこれは一般的な考え方じゃないんでしょうか?
一抹の不安が・・・。(^_^;

お礼日時:2001/07/02 17:51

ブラウザの「戻る」をしてもらえれば良いんですよね。



そのアラートページに「再入力してね」と書いて、
onClick="history.back()" なボタンを置いておくとか、
onLoad="history.back()" なページにしてしまうとか。

# 安直?


正攻法は申し込みページ自体を CGI で出力するようにして
おいて、たまたま最初に表示されるときが初期値がブランクで
ある、というような形にしておいて、チェックの CGI でも
同じコードを使う、ということになるでしょう。
    • good
    • 0
この回答へのお礼

早速のご回答有り難うございます。
なるほど、JavaScriptを使うのが有効なのですね。
ただ今回は出来るだけPerlでやってみたいと思っておりますので「正攻法」の方にチャレンジしてみようかと思います。
有り難うございました。

お礼日時:2001/07/02 17:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報

カテゴリ