人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

●質問者: ebagos
●カテゴリ:コンピュータ
✍キーワード:ASP JavaScript SQLServer すみません エラー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ちゃぼりん
●30ポイント

http://www.hatena.ne.jp/

はてな

うーん、おっしゃるとおり、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入力値を再表示させるようなコーディングをする時は、クロスサイトスクリプティング脆弱性に注意です。

◎質問者からの返答

ありがとうございます。

参考になりました!


2 ● hive7134
●20ポイント

http://www.google.com/

Google

4.のときに、

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

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

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


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

◎質問者からの返答

ありがとうございます。

参考になりました!


3 ● skaede
●10ポイント

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

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

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


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

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

◎質問者からの返答

ありがとうございます。

今回はaspなので・・・

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ