2012-04-04 109 views
0

我創建了這個劇本,但我不知道爲什麼第二個選擇框沒有顯示...填充一個選擇框的ASP + JQUERY

也許我的ASP是錯誤的?

看:

HERE爲演示頁面

這是腳本:

<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%> 

回答

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)也需要返回一個JSON或XML對象,以便它可以被加載到所述第二選擇物品。目前沒有。

由於您正在執行AJAX請求,因此該行也不起作用。

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

第2選擇元件依賴於第一選擇要素的選項選擇,所以我想將第二查詢進入一個AJAX調用和填充第二選擇。

0

第二選擇甚至沒有在頁面渲染,因爲它沒有通過If not trim(Request("estado")) = "" then條件。

+0

so ..我需要做什麼? – Preston 2012-04-04 01:19:20

+0

我已經排除了這個和'display:none' from select,現在第二個選擇顯示,但是當我從第一個選擇中選擇任何狀態時,不會發生... – Preston 2012-04-04 01:22:13

0

從螢火蟲:

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

另外:

$ is not defined 

你可能要檢查的源路徑爲你的jQuery包括。

+0

對不起..我現在把JS文件..但沒有任何反應 – Preston 2012-04-04 01:14:50