• 締切済み

チェックを入れるサンプルなどありましたら

現在perlを使ってCGIに挑戦しています。 アンケート用紙のようなフォームを作りそこに 文字を入力してもうらうプログラムを作成しています。 そこで質問なのですが、アンケート用紙のような物に文字を入力してもらってオーケーボタン を押した時に、必ず入力してもらいたい所の入力漏れ注意や数字を入れてもらう所をかな入力で入れている人に注意をうながすようなサンプルを探していますがなかなか見つかりません。 どうかそのような本、ホームページ等、又それに関する資料等ありましたらどうかおしえていただけませんでしょうか? どうかよろしくお願いします。

みんなの回答

  • deia
  • ベストアンサー率46% (15/32)
回答No.4

deiaっす。 とりあえずは下記のようなものでいかがでしょう? 項目は名前とメールアドレスだけなのでお好みに合わせていじくりまくりましょう。(^_^)!! あとform actionの指定忘れずに。 それではがんばってください。 <html> <head> <title>フォーム</title> <SCRIPT LANGUAGE="JavaScript"> <!--- function Check(){ if (document.forma.name.value==""){ window.alert("名前が記入されていません。"); return false } if (document.forma.mail.value==""){ window.alert("メールアドレスを入力してください。"); return false ; } else if(document.forma.mail.value.indexOf("@",0)<=0){ window.alert("メールアドレスが間違っています。"); return false;} return confirm("以下の内容で送信します。 \n\n名前:"+document.forma.name.value+"\nメールアドレス:"+document.forma.name.value+"\n\nよろしいですか?"); return true;} //---> </SCRIPT> </head> <body> <form name="forma" method="post" action="" onSubmit="return Check()"> 名前:<input type="text" size="40" name="name"><br> メールアドレス:<input type="text" size="40" name="mail"><br> <input type="submit" value="送る"> <input type ="reset" value="リセット"> </form> </body> </html>

  • deia
  • ベストアンサー率46% (15/32)
回答No.3

再びdeiaです。 >本の情報ですが、ジャバを使うとエラーメッセージが出せるもののそれを無視して通過する事ができると書いてあったのでCGIで作るしかないのかなと思ったのです。 どの本の情報か知りませんが、JavaScriptでもエラーメッセージを無視して通過するなどと言うことは全く無いと思います。(作り方にもよるかもしれないけど、そんな変な作り方する人いないと思うし。) 何かあればまた補足に追加してください。では!!!

aeic
質問者

お礼

それであればジャバで作ったほうが良いと思います。 deiaさんがお勧めするジャバソースをしていましたらおしえていただけませんでしょうか? どうぞよろしくお願い致します。

  • danmarino
  • ベストアンサー率63% (26/41)
回答No.2

JavaScriptの方が簡単ですが、Perlでということであれば以下の方法でどうでしょうか。 まずHTML側ですが、 フォームの入力部分は <INPUT TYPE="text" NAME="お名前"> <INPUT TYPE="text" NAME="電話番号"> <INPUT TYPE="text" NAME="住所"> といった感じで記述されているとします。 入力必須にしたい項目を <INPUT TYPE="hidden" NAME="required" VALUE="お名前:住所"> のようにTYPE="hidden"、NAME="required"、VALUE="必須にしたい項目名:必須にしたい項目名(…以下同じ)" としてあげます。 次にPerlですが、 おそらく読み取ったデータを配列にセットされていると思いますので上記hiddenで渡されたNAME="required"の部分を@requiredにセットする別処理を加えてあげます。 @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name,$value) = split(/=/,$pair); if ($name eq "required") { @required = split(/:/,$value); } else { push(@data_name,$name); push(@data_value,$value); } } なお、上の処理は日本語等の処理の部分は省いてあります。 その下で以下のようにチェック処理をしてあげればOKです。 $count = @data_name; foreach $required (@required) { foreach (0..$count-1) { if ($data_name[($_)] eq $required && $data_value[($_)] eq "") { ※エラー時の処理;} } } あまりスマートなやり方ではありませんが、一応動きます。 参考になれば幸いです。

  • deia
  • ベストアンサー率46% (15/32)
回答No.1

CGIじゃなくてもJavascriptを使った方が手軽で簡単に出来ると思います。 がperlでという事なので定番のこちらのサイトで自分なりに勉強してみては・・・。 正規表現などが理解できていれば、perlでも簡単に出来ると思います。 ではがんばってください。

参考URL:
http://tohoho.wakusei.ne.jp/www.htm
aeic
質問者

お礼

回答頂き本当に助かります。 本の情報ですが、ジャバを使うとエラーメッセージが出せるもののそれを無視して通過する事ができると書いてあったのでCGIで作るしかないのかなと思ったのです。 そこらへんは作り方によって大丈夫になるのでしょうか?

関連するQ&A