ASP+SQLserverにて、サイトを構築しています。

データの修正時の、ロジックについて質問があります。
1.データをデータベースから取り出し、フォームに表示させる。
2.データを修正し送信ボタンを押す。
3.データの入力チェック。
4.データに不正な値があれば、エラーを表示し、なければ、データベースを更新する。

4.のエラー表示のところなのですが、修正した値をフォームに表示させたまま、エラーメッセージを表示させるには、javascript等のクライアントサイドのスクリプトで、入力チェックを行うしかないでしょうか?

できれば、ASPのサーバーサイドで入力チェックを行いたいと考えております。ただ、フォーム内のvalue値に、データベースから、値を取得した時と、フォームから、値を取得した時(入力エラー時)と二つ設定しなくてはいけないと思うのですが、もっと、簡単にできるロジックはないでしょうか?
質問がわかりにくくてすみません・・・

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Chaborin No.1

回答回数189ベストアンサー獲得回数7

ポイント30pt

うーん、おっしゃるとおり、2つ設定するロジックが必要となると思います。


フォーム内のValue値が存在する場合(キーとなるRequest.formの値が存在するか否か)でフォームの存在判定をし、存在すればその内容をつっこむ。なければSQLより取得する。

各Value値を個別に設定すれば、比較的簡単にできるのではないでしょうか。


test.aspのHTML部分:

>>

<form method=”post” action=”test.asp”>

<input type=”hidden” name=”postflg” value=”1”>

<input type=”text” name=”element1” value=”<%=element(1)%>


<input type=”text” name=”element2” value=”<%=element(2)%>


<input type=”text” name=”element3” value=”<%=element(3)%>


</form>

<<


test.aspのスクリプト部分:

>>

If Request.Form(”postflg”)<>”1” Then

’-- SQLから取得

strSQL=”SELECT ... FROM ... WHERE ...”

...

set rs = con.open(sql,1,0)

element(1) = rs.fields(”column1”).value

element(2) = rs.fields(”column2”).value

element(3) = rs.fields(”column3”).value

rs.close

con.close

Set con = Nothing


Else

’-- フォームから取得

elements(1) = server.HTMLEncode(Request.Form(”element1”))

elements(2) = server.HTMLEncode(Request.Form(”element2”))

elements(3) = server.HTMLEncode(Request.Form(”element3”))


End If

<<


Form入力値を再表示させるようなコーディングをする時は、クロスサイトスクリプティング脆弱性に注意です。

id:ebagos

ありがとうございます。

参考になりました!

2006/02/12 18:21:12
id:hive7134 No.2

回答回数167ベストアンサー獲得回数16

ポイント20pt

4.のときに、

 ■データに問題があれば、エラーメッセージとともに1.のフォームを再表示

 ■なければ更新し完了画面を表示、

のような流れではどうですか?


フォーム再表示するときには送信されてきた(不正な)値を、1.のフォームのValue値に書き込み、横にエラーメッセ-ジでも添える、というようなイメージです。

id:ebagos

ありがとうございます。

参考になりました!

2006/02/12 18:22:24
id:skaede No.3

回答回数13ベストアンサー獲得回数0

ポイント10pt

http://www.microsoft.com/japan/msdn/library/default.asp?url=/jap...

MSDN ライブラリ サイト移行に関する重要なお知らせ

ASPでサーバサイドの入力チェックを行うとしたら、おっしゃるとおり、自分でロジックを組む必要があると思います。


ASPではなく、ASP.NETではだめでしょうか?

ASP.NETのWebフォームを使うと非常に簡単に実現できると思うのですが。

id:ebagos

ありがとうございます。

今回はaspなので・・・

2006/02/12 18:22:44

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません