• 締切済み

ASP エラーチェック VBScript

プログラミング初心者です。 現在ASPの勉強のために簡単な検索、登録システムを作っています。 検索でも登録でもそうなのですが、入力内容にエラーがあった場合にASP側でチェックをしてHTML内にエラーメッセージを表示させるという仕様にしているのですが… エラーメッセージを表示させる際にHTMLを再読込するので入力した内容がクリアされてしまい困っています。 エラーを含む入力した内容はクリアせずにエラーメッセージを表示させるにはどうしたらよいのでしょうか?? 非常に基本的なことなのかもしれませんが…どなたかご教授よろしくお願いします。

みんなの回答

回答No.3

初心者なんですね。 手っ取り早く、入力値をResponse.Writeしてやるのがいいかと思います。但し、必ずHTMLEncodeしてください。 例) <input type="text" name="Text1" value="<%=Server.HTMLEncode(Request.Form("Text1")) %>">

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.2

こんちくは。 >>そもそもエラーチェックというのは基本的には次のページで行うものなのですか?? いや。別に、どこでやってもいいんですけどね(汗 >>入力内容にエラーがあった場合に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なら何かしら戻すことが可能かと。 (後は、仕様次第なのでなんともですが、応用すれば、入力された項目と同じ項目を再表示してやれます。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちくは。 ん~。いくつか方法はありますが、環境の明記がないので、考え付いたことをテキトーに。 フレーム構成のページの場合。 メインフレームとサブフレーム(サブフレームは表示領域0)にわけて、入力項目は、メインフレーム内。 チェック処理時に、サブフレームに投げてチェックさせる。 エラーのメッセージは、サブフレーム内のHTML文内のテキストフォームにでも入れておく。 エラーだったらメインフレーム内のページを入力項目のページにsubmit。 JavaScriptで、サブフレーム内のテキストフォームに文字があるかないか判断して、表示させる。(まぁ、戻ってくる以上、無いはずは無いですが。 フレーム構成じゃない場合。ただし、入力項目ページも、次のページもASPファイルの場合(個人的には断然こっちのが好きですが 入力項目のページから、次のページにsubmitした際に、次のページにて、まずチェック。 エラーがあったら、submitで入力項目のページに戻す。 その際に、フォームの中に何か突っ込んでsubmitをかけてやることで、「request.form」やら「request.querystring」にてエラーとして突っ込んでおいたフォーム内の情報が取得可能。 後は、Ajax使って、非同期でサーバと通信してサーバの方でチェックさせて戻す。。。とか。。。 まぁ、一番簡単に説明できるのは上二つかな。。。 でも、これで、「ASP.netなんです」とか言われたらどうしようもないですが。(知らないので。。。

p72man
質問者

お礼

早々のご回答ありがとうございます。 「ASP.net」ではありません。 今回はフレーム構成のページではないので後者の方が当てはまるとおもうのですが…やはり入力項目ページ内でエラーチェックして入力項目ページ内にエラーメッセージを表示させる、なおかつ入力された項目は表示させたまま。というのは不可能なのですかね。 そもそもエラーチェックというのは基本的には次のページで行うものなのですか?? すいません、質問ばかりになってしまって。

関連するQ&A

  • asp(vbscript)のエラー

    プログラム初心者です。 教えてください。 以下の処理が書かれている 画面のHTML上で実行開始のボタンを押すと、 書かれたSubプロシージャが走り、CSVファイル読み込みが始まります。 正解、不正解の判定をするダイアログ表示されて、できている様なのですが、 そのダイアログをOKで閉じると 以下のスクリプトエラーが表示されます。 どのような原因のエラーなのか教えていただけないでしょうか? デバッグすると If arrFields(1) = "あ" Thenの行でエラーが起きているようです。 すみません。よろしくお願いします。 Sub syori (省略) Set objFile = objFSO.OpenTextFile(file_path, ForReading) Do While objFile.AtEndOfStream <> True strData(i) = objFile.ReadLine Data = strData(i) i = i + 1 arrFields = Split(Data,",") 'MsgBox arrFields(1) If arrFields(1) = "あ" Then MsgBox "正解" else MsgBox "不正解" end if (省略) Sub End

  • ASP:チェックボックスについて

    アンケートページを作成中です。HTMLでチェックボックスを作りました。テキストベースかエクセルベース(縦並び)でアンケートの答えを書き出し集計をとる予定です。まず、ラジオボタンに対してのASPは分かったのですが、チェックボックスに対してのASPが分かりません。複数チェックが出来なくなってしまったり、結果(テキストやエクセル)にアンケートの答えが出なく”;;”表示になってしまいます。分かる方、どうか教えてください。ASP初心者です。よろしくお願いします。

  • VBScriptの書き方

    メンテナンス画面から登録ボタンを実行して、 入力内容にエラーがあったら、 エラーメッセージを表示して、 登録画面をもう一度表示する。 といった処理にしたいのですが、 エラーメッセージをVBScriptで表示すると、 メッセージが、どうしても2回表示されてしまいます。 例) <% If xx then %> <script language=VBScript> <!-- MsgBox("aaa") //--> </script> <% End If %> : : : <html> : : </html> <html>タグの前に<script>タグを書くとsubmitされるのでしょうか? 結局、html中のjavaScriptに書き込んで、<body>のonloadでメッセージを 表示する処理に直したのですが、腑に落ちないので… ご存知の方、教えてください。 ちなみに環境はNT4.0、IE5.5です。

  • ASP.NET2で入力チェックと確認メッセージ

    ASP.NET2.0を勉強中なのですが、下記の処理ができずに困っています。どうすればいいのでしょうか? 根本的に考え方が間違っているのでしょうか? <行いたい処理> (1)ボタン押下時に入力チェック (2)(1)がOKなら確認メッセージの表示 (3)「はい」の場合は処理を行う <前提> ページには必須チェックを行う検証コントロールを配置し検証を行っています。 ボタンのOnClickに【return confirm('登録しますか?');】と明記すればメッセージは表示されるのですが、検証コントロールのチェックがされません。 また、サーバー側のボタンのクリックイベントで 【ClientScript.RegisterClientScriptBlock】を使用すると、検証コントロールのチェック、メッセージは表示できるのですが、メッセージの戻り値が取得できません。。。

  • 検索エンジンでのエラーメッセージ

    プログラムの知識0です。仕事でどうしても解明しないといけないので教えてください。 aspで検索エンジンを作っているみたいなのですが(作った人はもういなくて誰もわかりません)その中にいくつかエラーメッセージを用意してあります。 しかし、検索をかけるとその中に用意されていないエラーメッセージが出てきます。内容は「要求したカタログは空であるか検索サーバーに追加されていません」となります。 これは、aspファイル内から出力されたメッセージではなくサーバーからのメッセージと解釈してよいのでしょうか?これを回避するためには、HTMLファイルやaspファイルをいじってもなおすことはできないとの判断でよろしいでしょうか? 素人のため、質問内容が意味不明かもしれませんが、 どうぞよろしくお願いいたします。

  • ホームページ 入力チェックのアラートについて

    PHP、HTMLを使用して入力フォームを作成しております。 項目の入力チェックにはJavascriptを使用しており、エラーがあった場合に メッセージボックス(alert)で表示しています。 しかし、依頼主からメッセージボックスより、カッコいいホームページにある ようなテキストボックスの隣に赤の*を表示させたいと要望があり、どのように 実現させれば良いのか、いまいちよく解りません。 入力内容をサーバーでチェックさせて再表示というのも一つの手だと思い ますが、できればブラウザ側でチェックさせる、要はJavascriptでそういうこと が実現できないかと考えております。Javascriptで検索しても上記のようなサンプル も見当たりませんでした。 なにぶん、PHPやJavascript使っていると書いておきながら超初心者なので 他に良いやりかたがあればご教授願います。

    • ベストアンサー
    • HTML
  • VBScriptで未入力のチェック(クライアントサイド)

    ある程度の入力チェックをIEにて行わせたいのですが 入力チェックをして「OK」ボタンをクリックしても 次ページへ移動してしまいます。 メッセージを表示させて未入力の欄にフォーカスを動す方法を 教えてください。(何か入力されていたら次のページへ移動) よろしくお願いします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE=vbscript> <!-- Sub window_onload FAQForm.text1.focus End Sub Sub submit1_onclick if FAQForm.text1.value="" then msgbox "未入力です。" exit sub end if End Sub --> </SCRIPT> </HEAD> <BODY> <FORM NAME="FAQForm" METHOD="post" ACTION="FAQ.asp"> <P><INPUT name=text1></P> <P><INPUT type=submit value=Submit name=submit1></P> </FORM> </BODY> </HTML>

  • エラーチェックができない

    最近パソコンが不安定なのでCドライブのエラーチェックをしようと、マイコンピュータ→Cドライブ→プロパティ→エラーチェックで両方の項目にチェック後、再起動すると、 Cannot Open Volume for Direct Access というメッセージが表示されて、その後、チェックは終わりましたというようなメッセージが表示されて、普通にWindowsが起動してしまいます。 どのようにすれば正常なエラーチェックができるようになりますか?教えてください。

  • PHPでのエラーチェックについて

    PHP 初心者デス。よろしくお願いします。 勉強のため、PHPにてメールフォームを作成してます。 PHPでのエラーチェックについて教えていただきたいのですが、 よろしくお願いします。 メールフォーム自体は下記のような流れで作成しております。 ------------------------------------------- 入力フォーム(index.php) ↓(check.php エラーチェック用ファイルとおる) 確認画面表示(confirm.php) ↓(send.php 送信処理がかかれたファイルとおる) 完了画面表示(thanks.html) ------------------------------------------- エラーチェックはindex.phpで必須項目などが、未入力、空白があれば、 送信ボタンを押した際に、index.php自体の入力フォームの下などに 「未入力です」などのエラー表示をさせたいのですが、うまくいきません。 ご教授お願いいたします。 できればSESSIONなどを使用せず行いたいですが可能でしょうか? とりあえず自力でやって、うまくいかなかったのは以下内容です。 --------------------------------------------------- check.phpにエラーチェック用処理を記載しており、index.phpのフォームには <form method="post" action="check.php"> としてます。 ですが、これだともちろんエラー表示はchek.phpに表示されてしまい、 うまくindex.phpにエラー表示ができません。 またindex.phpに入力した内容をconfirm.phpにPOSTで渡せなかったりします。 index.phpにincludeなどでchek.phpを読み込ませて、 <form method="post" action="confirm.php"> としてみても、 うまくエラーチェックが動作しなかったり、 index.phpに入力した内容をconfirm.phpにPOSTで渡せなかったり、 苦労してます。 どうかご教授のほど、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ASP 特定できないエラーです

    ASPを用いてデータベースから参照して検索するプログラムを作成中なのですが、各ページに飛ぶとき、朝は普通に各ページが表示されるのでが、夕方になるとエラーが出て各ページが表示されません。エラーは特定できないと表示されます。いろんな種類のエラーを調べてみたのですが、原因が全くわかりません。誰か原因を存じている方、教えてもらえないでしょう?

専門家に質問してみよう