- 締切済み
資料請求CGIについて
プログラミングについてはほとんど初心者なので的違いの質問だったらすみません。 実は今、資料請求のCGIを作っているところなんですが、いくつか解決できない問題があります。 (1)資料請求フォーム内でいくつか記入必須項目がありそこを未記入状態で送信確認ボタンを押すと、同じフォーム画面の特定の場所にどこが未記入なのかのメッセージが出、すでに記入済みの項目はきちんとデータが残ってる状態で、未記入部分を記入すればいいというふうにしたい。 (2)資料請求フォームから送信確認ページに移動し、このページからフォーム データを送信したい。 いろいろ考えてみたのですが、(1)のほうはJavascriptかなにか使うしかないのでしょうか?できればシンプルにしたいので、最悪未記入部分だけというのが無理であれば、同じフォームに未記入メッセージが載っている全て未記入状態のフォームに飛ぶという形でもかまいません。 (2)についても一つのCGIスクリプトだけで上記の問題も含めて全て起動させるのは無理かと思い困ってます。 どうかよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 2NN
- ベストアンサー率40% (143/353)
回答忘れありました。 > sendmail関連の内容をどの位置に記入すれば動作するのか 送信確認ページのhiddenに、送信確認であることを設定しておけば、 (例:<input type="hidden" name="mode" value="kakunin">) その情報を受け取った場合、sendmailの処理に行くようにすれば いいと思います。 if($in{'mode'} eq 'kakunin'){ &Sendmail; }
- 2NN
- ベストアンサー率40% (143/353)
#必須項目の設定 @hissu = ("mail","name","text"); #必須項目が入力されているかチェック foreach(@hissu){ if(!$in{$_}){ &InputError("$_"); } } ※フォームの入力内容を$in{}に格納しているとします。 (例:$in{'name'} $in{'mail'}) 必須項目が入力されていなければ、 InputErrorサブルーチンで print "$_が入力されていません。"; という旨のページを、 InputErrorに引っかからなければ、送信確認のページを、 という感じで良いんじゃないでしょうか。 あくまで一例です。
- 2NN
- ベストアンサー率40% (143/353)
(1)については、送信ボタンを押した状態で、 送信させないでエラーを出すにはJavascriptが必須です。 ただし、送信してCGIの方で何か足りないよと新しいページで メッセージを出すことは可能です。 (新しいページでも全く同じフォーム) その際、記入済みのデータを、CGIが埋めた状態で 表示してあげれば問題ありません。 (記入済みのvalue=""の中身をCGIが埋める。) (1)、(2)についても1つのCGIスクリプトで動作可能です。
補足
早々のご回答ありがとうございます。 (1)についてはエラーメッセージつきの新しいページのvalueの値に 記入済みのページからのデータが入った変数を受け取るという風に すればいいということでしょうか? その場合、送信確認ボタンを押した時のアクションがどちらの画面に 行くか条件文を入れないといけないでしょうが、それをどこに書けばいいのか、どう書けばいいのかがわからないのです。 (2)については1つのスクリプトで動作可能ということがわかっただけでも助かりましたが、贅沢を言わせてもらえれば上記の内容同様、sendmail関連の内容をどの位置に記入すれば動作するのかわからないのです。 ちなみに送信確認画面のほうでは、視覚的に確認できるテーブルの下に「送信」と「リセット」のボタンがあり、そのボタンの位置には <input type=hidden name=name value=""> etc <input type=submit value=送信> という風にしているのですが。