ASP表单怎样可以实现:选择省后自动出现城市列表?
见过很多页面好似都是页面无刷但却"偷偷"刷新的.比如在注册表单里面,我选择了一个省份,就自动出现了此省份的相关列表.无须我手动输入城市名字了,感觉非常好,希望高手能教我用...
见过很多页面好似都是页面无刷但却"偷偷"刷新的.
比如在注册表单里面,我选择了一个省份,就自动出现了此省份的相关列表.
无须我手动输入城市名字了,感觉非常好,希望高手能教我用ASP怎样实现.
当然,教我用"ASP.NET"也可以,我总觉得ASP没有关于控件的功能.如"HtmllnputText" 展开
比如在注册表单里面,我选择了一个省份,就自动出现了此省份的相关列表.
无须我手动输入城市名字了,感觉非常好,希望高手能教我用ASP怎样实现.
当然,教我用"ASP.NET"也可以,我总觉得ASP没有关于控件的功能.如"HtmllnputText" 展开
展开全部
用ASP做是可以做的,不过,javascript在这个功能中扮演了极其重要的角色,我前些日子刚把它实现,不过费了我好长时间,可能是我资质太差了,呵呵,先和你说说实现的思路吧!!
总的来说,你要实现的这种功能,其实就是关联菜单,二级、三级或多级,虽然看起来不起眼,但实现起来还真不容易,尤其是我们业余选手,哈哈,不哆嗦了,言规正传:
先说关系吧,举个例子说一下,如下:
一级菜单:省份
二级菜单:县市
一、二级间存在对应关系,即选择不同的一级菜单,对应的二级菜单是要进行相应变化的。这些数据可以存于数据库的一张表里,表的结构如下:
列名:id provice city
我们要实现的功能就是,在改变第一个列表框的值时,第二个列表框里的值会立即发生变化。整体思路:当第一个列表框的值改变,触发on_change事件,然后打开一个新窗口,并且将列表框当前的值传递给新的窗口,新窗口接收传递来的数据,打开数据库,找出对应的市县,并将值赋给第二个列表框,然后关闭窗口,新窗口从打开到关闭,只是一瞬间。
第一步:我们从表中取出列provice的值,构成第一个列表框select_1,注意,要使用distinct关键字,选择唯一的省份;
第二步:设置列表框select_1的on_change事件:
<select name=select_1 on_change="window.open('new_window.asp?province='+this.value)">
<option>山东省</option>
......
</select>
第三步:
也就是new_window.asp的内容:
1、取值:
province=request("provice")
2、创建记录集,从数据库中取查找符合province的city结果
这就不用说了吧
3、利用javascript将记录集中的city值,循环赋给第二列表框
<%= "<script language='javascript'>" %>
<% do while not rs.eof %>
var new_opt=window.opener.document.createElement("OPTION");
new_opt.text="<%= rtrim(rs("市县")) %>";
new_opt.value="<%= rtrim(rs("市县")) %>";
window.opener.f1.s_menu.add(new_opt);
<% rs.movenext %>
<% loop %>
window.close();
<%= "</script>" %>
以上这段代码就是这个功能的核心,自己尝试一下,看看怎么样,别的不用说了,都在代码里了,不过这个功能需要一点javascript功底,同时浏览器要支持弹出窗口。
当然,这种方法应用的较为常见,也有应用数组来解决问题的,欢迎与你一同探讨问题的解决与优化。
希望能帮得上你!
总的来说,你要实现的这种功能,其实就是关联菜单,二级、三级或多级,虽然看起来不起眼,但实现起来还真不容易,尤其是我们业余选手,哈哈,不哆嗦了,言规正传:
先说关系吧,举个例子说一下,如下:
一级菜单:省份
二级菜单:县市
一、二级间存在对应关系,即选择不同的一级菜单,对应的二级菜单是要进行相应变化的。这些数据可以存于数据库的一张表里,表的结构如下:
列名:id provice city
我们要实现的功能就是,在改变第一个列表框的值时,第二个列表框里的值会立即发生变化。整体思路:当第一个列表框的值改变,触发on_change事件,然后打开一个新窗口,并且将列表框当前的值传递给新的窗口,新窗口接收传递来的数据,打开数据库,找出对应的市县,并将值赋给第二个列表框,然后关闭窗口,新窗口从打开到关闭,只是一瞬间。
第一步:我们从表中取出列provice的值,构成第一个列表框select_1,注意,要使用distinct关键字,选择唯一的省份;
第二步:设置列表框select_1的on_change事件:
<select name=select_1 on_change="window.open('new_window.asp?province='+this.value)">
<option>山东省</option>
......
</select>
第三步:
也就是new_window.asp的内容:
1、取值:
province=request("provice")
2、创建记录集,从数据库中取查找符合province的city结果
这就不用说了吧
3、利用javascript将记录集中的city值,循环赋给第二列表框
<%= "<script language='javascript'>" %>
<% do while not rs.eof %>
var new_opt=window.opener.document.createElement("OPTION");
new_opt.text="<%= rtrim(rs("市县")) %>";
new_opt.value="<%= rtrim(rs("市县")) %>";
window.opener.f1.s_menu.add(new_opt);
<% rs.movenext %>
<% loop %>
window.close();
<%= "</script>" %>
以上这段代码就是这个功能的核心,自己尝试一下,看看怎么样,别的不用说了,都在代码里了,不过这个功能需要一点javascript功底,同时浏览器要支持弹出窗口。
当然,这种方法应用的较为常见,也有应用数组来解决问题的,欢迎与你一同探讨问题的解决与优化。
希望能帮得上你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询