填充选择框ASP + JQUERY

时间:2012-04-04 00:48:18

标签: jquery asp-classic

我创建了这个脚本,但我不知道为什么第二个选择框没有显示...

也许我的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%>

3 个答案:

答案 0 :(得分: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

第二个选择元素取决于第一个选择元素的选项选择,所以我会将第二个查询移动到一个AJAX调用并填充第二个选择。

答案 1 :(得分:0)

第二个选择甚至没有在页面中呈现,因为它没有通过If not trim(Request("estado")) = "" then条件。

答案 2 :(得分:0)

来自萤火虫:

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

此外:

$ is not defined

您可能想要检查jQuery include的源路径。