当然有很多方法可以做到这一点。此示例将在您选择一个选项时提交表单,然后显示年龄和性别。(查询、连接等需要更改以适合您的对象)
<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 做这种事情,即使在经典 ASP 中也很容易做到,特别是如果你可以使用 jQuery。如果您想这样做,我可以发布一个示例。
使用 AJAX 解决方案更新:
好的,这是一个使用 jQuery 的示例,我建议您使用它,因为在 JavaScript 中执行 Ajax 将花费我太长时间...
<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
%>