根据使用经典ASP从下拉列表中选择的选项填充网页中的字段

时间:2012-10-09 17:47:29

标签: database asp-classic combobox

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

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

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

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

谢谢,

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

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

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

1 个答案:

答案 0 :(得分: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做这种事情,即使在Classic 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 
%>