ASPアプリケーションにて、登録情報の入力チェックを行うため、下記のようにしたところ、メッセージボックスが出てきません(テキストボックスに入力される初期値はnullになっています)。クライアント側で処理させるため、メッセージボックスを使用しています。内部変数を使用しても上手くできないため、外部変数を使用してみました。

<%
Set ObjConn = Server.CreateObject("ADODB.Connection")

ObjConn.Open "database","",""

Set ObjRS = Server.CreateObject("ADODB.Recordset")

ObjRS.Open "master", ObjConn, 3, 3

Session.Contents.Item("test") = ObjRS.Fields("摂取量").Value
%>

<script language="VBScript">
<!--
msg = Session.Contents.Item("test")
MsgBox "Null" & IsNull(msg)
MsgBox "Empty" & IsEmpty(msg)
MsgBox msg
-->
</script>

<%
ObjRS.Close
ObjConn.Close
%>

このQ&Aに関連する最新のQ&A

A 回答 (2件)

> If MsgBox("入力した値は""" & """<%= ObjRS.Fields("摂取量").Value %>""" &""""です", 4, "入力OK") = 6 Then



これだと、表示されるメッセージはサーバー側でページを送信した時に固定されてしまいます。
実行時の値を取得したい場合は、サーバー側ではなくクライアント側のオブジェクトを操作します。

If MsgBox("入力した値は""" & volume_2.value & """です", 4, "入力OK") = 6 Then

とかでしょうか。
    • good
    • 0
この回答へのお礼

大変参考になりました。早速確認してみたところ、コンパイルエラーはでませんでしたが、実行されません。原因は分かりません。

お礼日時:2011/04/14 00:39

> msg = Session.Contents.Item("test")



Sessionはサーバー側にあるオブジェクトなので、クライアントのスクリプトでは使用できません。

msg = <%= Session.Contents.Item("test") %>

のようにして、クライアントに渡す前に変数の内容を書き出せばいいのではないでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。大変参考になりました。上記でも上手くできず、

msg = "<%= ObjRS.Fields("摂取量").Value %>"

としたところ、上手くできました。しかしながら、これでは入力画面が現れる前になっていました。
そこで、入力決定後、保存される前に下記のようにすることにより、解決しました。

If Request.Form("volume_2") = Empty Then
Response.Write("入力された摂取量は正しくありません。<br><hr>")
Response.End
End If

なお、前者については、下記のようにしていいようですが、上手くできません。

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

摂取量を入力して下さい。<br>
<input type="text" name="volume_2" value="<%= ObjRS.Fields("摂取量").Value %>" size="20">[g]<input type="reset" name="button1" value="クリア">
<input type="submit" name="button2" value="決定"><br><br>

</form>

<script language="VBScript">

Sub volume_2_Change()
If MsgBox("入力した値は""" & """<%= ObjRS.Fields("摂取量").Value %>""" &""""です", 4, "入力OK") = 6 Then
'黒で表示
volume_2.ForeColor = 0
Else
'赤で表示
volume_2.ForeColor = 255
End If
End Sub

Sub Window_OnLoad()
volume_2.IMEMode = 1
End Sub

</script>

お礼日時:2011/04/11 23:11

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング