0

ドロップダウン コンボ ボックスを含むページがあり、その値はデータベースから取得されます。コンボ ボックスの横には 2 つのテキスト ボックスがあります。

ドロップダウン リストから選択したオプションに基づいて、DB に移動し、DB から関連データを取得して、2 つのテキスト ボックスに入力する必要があります。

ページには簡単なフィールドが他にもありますが、この状況をどのように処理すればよいかわかりません。

リンク/サンプルコード/読み物/またはその他の形式のヘルプをいただければ幸いです。

ありがとう、

わかりました、ここで大声で考えています。これがサンプルコードです

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

選択したデータへの参照として値、つまり FldID が必要ですが、残りのデータにどこかにタグを付けることができれば。たとえば、他の 2 つのフィールドは 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で行う方が良いです。これは、特に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 
%> 
于 2012-10-09T21:40:53.117 に答える