0

このスクリプトを作成しましたが、2 番目の選択ボックスが表示されない理由がわかりません...

多分私のASPが間違っていますか??

見る:

デモページはこちら

これはスクリプトです:

<script type="text/javascript" src="jquery-1.7.1.min.js"></script>

<%
    strConnection ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("database/banco.mdb") &";"
    set objConn = Server.CreateObject("ADODB.Connection")
    objConn.open strConnection

    set rs_lojas = Server.Createobject("ADODB.RecordSet")
    rs_lojas.Open "select * FROM ondeencontrar WHERE estado = '"& request("estado")&"'", objConn

    If estado = "" Then
        estado = trim(Request("estado"))
        session("estado") = true
    End if

    If cidade = "" Then
        modelo = trim(Request("cidade"))
        session("cidade") = true
    End if
%>

<%  set rs_estado = Server.Createobject("ADODB.RecordSet")
    rs_estado.Open "SELECT distinct estado FROM ondeencontrar", objConn
%>

<script>
$("#first-choice").change(function() {
    $("#second-choice").load("estados.asp?estado=" + $("#first-choice").val());
    $("#second-choice").show("slow");   
});
$("#second-choice").change(function() {
    alter("TESTE");
});
</script>


<select id="first-choice">
    <option selected value="">Escolha um Estado</option>
    <%do while not rs_estado.eof%>
    <option value="<%=rs_estado("estado")%>"><%=rs_estado("estado")%></option>
    <%  rs_estado.MoveNext
    if rs_estado.EOF then Exit do %>
    <% Loop %>
</select>

<br /> <br />
<% 
If not trim(Request("estado")) = "" then
set rs_cidade = Server.Createobject("ADODB.RecordSet")
rs_cidade.Open "SELECT distinct cidade, estado  FROM ondeencontrar where estado = '"&estado&"'", objConn
%>
<select id="second-choice" style="display: none;">
    <option selected="<%=cidade%>"><%=cidade%></option>
    <% do while not rs_cidade.eof %>
    <option value="ondeencontrar.asp?estado=<%=request("estado")%>&cidade=<%=rs_cidade("cidade")%>"><%=rs_cidade("cidade")%></option>
<%
        rs_cidade.MoveNext
        if rs_cidade.EOF then Exit do
    %>
    <% Loop %>  
</select>
<%End If%>
4

3 に答える 3

1

jQuery セレクターは document.ready 内に配置するか、body タグが終了する前に下に移動する必要があります。まだレンダリングされていない要素を選択しています。

そのようです:

$(function(){
    $("#first-choice").change(function() {
        $("#second-choice").load("estados.asp?estado=" + $("#first-choice").val());
        $("#second-choice").show("slow");   
    });
    $("#second-choice").change(function() {
        alter("TESTE");
    });
});

この URL (http://fakedc.com/sites/luilui/teste.asp) も、2 番目の選択項目にロードできるように JSON または XML オブジェクトを返す必要があります。現在はありません。

AJAX リクエストを実行しているため、この行も機能しません。

If not trim(Request("estado")) = "" then

2 番目の select 要素は、1 番目の select 要素のオプション選択に依存するため、2 番目のクエリを AJAX 呼び出しに移動し、2 番目の選択を設定します。

于 2012-04-04T01:21:22.653 に答える
0

If not trim(Request("estado")) = "" then2 番目の選択は、条件を渡さないため、ページにレンダリングされません。

于 2012-04-04T00:50:45.147 に答える
0

Firebug より:

"NetworkError: 404 Not Found - http://fakedc.com/sites/luilui/jquery-1.7.1.min.js"

また:

$ is not defined

jQuery インクルードのソース パスを確認することをお勧めします。

于 2012-04-04T00:55:12.943 に答える