2012-04-04 111 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