もちろん、これを行うにはかなりの数の方法があります。この例では、オプションを選択して年齢と性別を表示すると、フォームが送信されます。(クエリ、接続などは、オブジェクトに合わせて変更する必要があります)
<form action="" method="get">
<select name="id" onchange="this.form.submit()">
<%
While not rsRecordSet.EOF
%>
<OPTION VALUE="<%=rsRecordSet("FldID")%>"><%=rsRecordSet("FldName")%></OPTION>
<%
rsRecordSet.MoveNext
Wend
Set rsRecordSet= nothing
%>
</select>
</form>
<%
If Request.QueryString("id") <> "" Then
'Open recordset to retrieve age and gender
rsRecordSet2.Open "SELECT FldAge, FldGender FROM table WHERE FldID = " & CInt(Request.QueryString("id")), connection
If Not rsRecordSet2.EOF Then
%>
Age: <%= rsRecordSet2("FldAge") %><br />
Gender: <%= rsRecordSet2("FldGender") %><br />
<%
End If
rsRecordSet2.Close
Set rsRecordSet2 = Nothing
%>
この種のことはAJAXで行う方が良いです。これは、特にjQueryを使用できる場合は、ClassicASPでも簡単に行うことができます。この方法で行きたい場合は、例を投稿できます。
AJAXソリューションで更新:
さて、JavaScriptでAjaxを実行すると時間がかかりすぎるため、jQueryを使用した例を使用することをお勧めします...
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#id").change(function() {
$.get('ajax.asp?id='+$("#id").val(), function(data) {
var fields = data.split(',');
$("#age").html(fields[0]);
$("#gender").html(fields[1]);
});
});
});
</script>
<select id="id">
<%
While not rsRecordSet.EOF
%>
<OPTION VALUE="<%=rsRecordSet("FldID")%>"><%=rsRecordSet("FldName")%></OPTION>
<%
rsRecordSet.MoveNext
Wend
Set rsRecordSet= nothing
%>
</select>
<div id="age"></div>
<div id="gender"></div>
ajax.aspというスクリプトを作成します。そこにすべてのデータベース接続のものを追加する必要があります。次に、渡されたIDに基づいてレコードセットを開き、次のように年齢と性別をカンマ区切りの文字列として返します。
<%
'Open recordset to retrieve age and gender
rsRecordSet2.Open "SELECT FldAge, FldGender FROM table WHERE FldID = " & CInt(Request.QueryString("id")), connection
If Not rsRecordSet2.EOF Then
Response.Write(rsRecordSet2("FldAge") & "," & rsRecordSet2("FldGender"))
End If
rsRecordSet2.Close
Set rsRecordSet2 = Nothing
%>