アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング初心者です。
現在ASPの勉強のために簡単な検索、登録システムを作っています。

検索でも登録でもそうなのですが、入力内容にエラーがあった場合にASP側でチェックをしてHTML内にエラーメッセージを表示させるという仕様にしているのですが…

エラーメッセージを表示させる際にHTMLを再読込するので入力した内容がクリアされてしまい困っています。
エラーを含む入力した内容はクリアせずにエラーメッセージを表示させるにはどうしたらよいのでしょうか??

非常に基本的なことなのかもしれませんが…どなたかご教授よろしくお願いします。

A 回答 (3件)

初心者なんですね。


手っ取り早く、入力値をResponse.Writeしてやるのがいいかと思います。但し、必ずHTMLEncodeしてください。

例)
<input type="text" name="Text1" value="<%=Server.HTMLEncode(Request.Form("Text1")) %>">
    • good
    • 0

こんちくは。



>>そもそもエラーチェックというのは基本的には次のページで行うものなのですか??

いや。別に、どこでやってもいいんですけどね(汗

>>入力内容にエラーがあった場合にASP側でチェックをして

の条件からすると、「ASPで入力内容チェックする」=「次ページに飛ばす」のが自分の中の固定概念であるからかもしれませんが。

多分、その方が楽。。。というか、サーバに一回処理を投げなきゃいけないわけなので、やっぱ次ページかな。。。と。


>>入力項目ページ内でエラーチェックして入力項目ページ内にエラーメッセージを表示させる、

ASP側で入力チェックをやらないなら、全然いいんですけどね。
JavaScriptでチェックしてやってください。

個人的には、「ASPで入力項目ページ内で入力エラーチェックを行う」のはできないと思ってますので。
(クライアント側で入力した内容を一度サーバに渡さなきゃいけないよな~?となると、やっぱり~みたいな感じで。

やはり、そのことをASPでやるよりは。。。
JavaScriptもしくは、Ajaxやらなにやらの非同期通信の言語(?)でやった方がよいかと。



>>入力された項目は表示させたまま。というのは不可能なのですかね。

に関しては。。。


page1.asp


<form name ="Form1" method ="POST">
<input type ="text" name ="t_1" value ="<% =request.form("t_1")%>">
<input type ="button" name ="b_1" onClick ="go_next()">
</form>

<script type ="text/JavaScript">
<!--
function go_next(){
alert(document.F1.t_1.value);

document.F1.target ="_self";
document.F1.action ="page2.asp";
document.F1.submit();
}
//-->
</script>


page2.asp


<%
response.write(request.form("t_1"))

Dim i
Dim re_str
i = request.form("t_1")

if i = 1 Then
re_str = "きゃ~。"
else
re_str = "いや~。"
end if
%>

<body onload =ONLD()>
<form name ="Form1" method ="POST">
<input type ="text" name ="t_1" value ="<% =re_str %>">
</form>
</body>

<script type ="text/JavaScript">
<!--
function ONLD(){
document.F1.target ="_self";
document.F1.action ="page1.asp";
document.F1.submit();
}
//-->
</script>


こんな感じにしとけば、
page1で入力したものを、page2でチェックして、NGなら何かしら戻すことが可能かと。
(後は、仕様次第なのでなんともですが、応用すれば、入力された項目と同じ項目を再表示してやれます。
    • good
    • 0

こんちくは。



ん~。いくつか方法はありますが、環境の明記がないので、考え付いたことをテキトーに。


フレーム構成のページの場合。

メインフレームとサブフレーム(サブフレームは表示領域0)にわけて、入力項目は、メインフレーム内。
チェック処理時に、サブフレームに投げてチェックさせる。
エラーのメッセージは、サブフレーム内のHTML文内のテキストフォームにでも入れておく。
エラーだったらメインフレーム内のページを入力項目のページにsubmit。
JavaScriptで、サブフレーム内のテキストフォームに文字があるかないか判断して、表示させる。(まぁ、戻ってくる以上、無いはずは無いですが。



フレーム構成じゃない場合。ただし、入力項目ページも、次のページもASPファイルの場合(個人的には断然こっちのが好きですが

入力項目のページから、次のページにsubmitした際に、次のページにて、まずチェック。
エラーがあったら、submitで入力項目のページに戻す。
その際に、フォームの中に何か突っ込んでsubmitをかけてやることで、「request.form」やら「request.querystring」にてエラーとして突っ込んでおいたフォーム内の情報が取得可能。


後は、Ajax使って、非同期でサーバと通信してサーバの方でチェックさせて戻す。。。とか。。。


まぁ、一番簡単に説明できるのは上二つかな。。。
でも、これで、「ASP.netなんです」とか言われたらどうしようもないですが。(知らないので。。。
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございます。
「ASP.net」ではありません。

今回はフレーム構成のページではないので後者の方が当てはまるとおもうのですが…やはり入力項目ページ内でエラーチェックして入力項目ページ内にエラーメッセージを表示させる、なおかつ入力された項目は表示させたまま。というのは不可能なのですかね。

そもそもエラーチェックというのは基本的には次のページで行うものなのですか??

すいません、質問ばかりになってしまって。

お礼日時:2008/02/29 09:45

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