0

我有一个包含下拉组合框的页面,其值来自数据库。组合框旁边是两个文本框。

现在基于从下拉列表中选择的选项,我需要转到数据库并从数据库中获取相关数据并填充两个文本框。

页面中还有其他字段是直截了当的,但我不知道如何处理这种情况。

任何链接/示例代码/阅读材料/或任何其他形式的帮助将不胜感激。

谢谢,

好的,我在这里大声思考,这是示例代码

   <%
    While not rsRecordSet.EOF
    %>
    <OPTION VALUE="<%=rsRecordSet("FldID")%>"><%=rsRecordSet("FldName")%></OPTION>
    <%
    rsRecordSet.MoveNext
    Wend
    Set rsRecordSet= nothing
    %>

我需要值,即 FldID 作为对所选数据的引用,但如果我可以在某处标记其余数据。例如,其他两个字段需要显示 FldAge 和 FldGender。我可以在 rsRecordSet 中获取它们,并且当我填充选项时,我可以填充一些标签以及稍后根据从组合中选择的选项如何调用它。只是在这里大声思考。谢谢

4

1 回答 1

2

当然有很多方法可以做到这一点。此示例将在您选择一个选项时提交表单,然后显示年龄和性别。(查询、连接等需要更改以适合您的对象)

<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 
%> 
于 2012-10-09T21:40:53.117 回答