ASP四级连动下拉列表程序段
时间:2009-07-03 15:33:00
<%
sql = "select * from SMT_addtwo order by SMT_addtwo_id asc"
set rs=server.createobject("ADODB.Recordset")
rs.open sql,conn,1,1
%>
<script language = "JavaScript">
var onecount1;
var onecount2;
var onecount3;
onecount1=0;
onecount2=0;
onecount3=0;
subcat1 = new Array();
subcat2 = new Array();
subcat3 = new Array();
<%
count = 0
do while not rs.eof
%>
subcat1[<%=count%>] = new Array("<%= trim(rs("SMT_addtwo"))%>","<%= trim(rs("SMT_addone_id"))%>","<%= trim(rs("SMT_addtwo_id"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount1=<%=count%>;
<%
sql = "select * from SMT_addthree order by SMT_addthree_id asc"
set rs=server.createobject("ADODB.Recordset")
rs.open sql,conn,1,1
count = 0
do while not rs.eof
%>
subcat2[<%=count%>] = new Array("<%= trim(rs("SMT_addthree"))%>","<%= trim(rs("SMT_addtwo_id"))%>","<%= trim(rs("SMT_addthree_id"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount2=<%=count%>;
<%
sql = "select * from SMT_addfour order by SMT_addfour_id asc"
set rs=server.createobject("ADODB.Recordset")
rs.open sql,conn,1,1
count = 0
do while not rs.eof
%>
subcat3[<%=count%>] = new Array("<%= trim(rs("SMT_addfour"))%>","<%= trim(rs("SMT_addthree_id"))%>","<%= trim(rs("SMT_addfour_id"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount3=<%=count%>;
function changelocation1(addone)
{
document.addform.addtwo_id.length = 0;
var addone_id=addone_id;
var i;
document.addform.addtwo_id.options[0] = new Option('请选择省','');
for (i=0;i < onecount1; i++)
{
if (subcat1[i][1] == addone)
{
document.addform.addtwo_id.options[document.addform.addtwo_id.length] = new Option(subcat1[i][0], subcat1[i][2]);
}
}
}
function changelocation2(addtwo)
{
document.addform.addthree_id.length = 0;
var addtwo_id=addtwo_id;
var i;
document.addform.addthree_id.options[0] = new Option('请选择市','');
for (i=0;i < onecount2; i++)
{
if (subcat2[i][1] == addtwo)
{
document.addform.addthree_id.options[document.addform.addthree_id.length] = new Option(subcat2[i][0], subcat2[i][2]);
}
}
}
function changelocation3(addthree)
{
document.addform.addfour_id.length = 0;
var addthree_id=addthree_id;
var i;
document.addform.addfour_id.options[0] = new Option('请选择县','');
for (i=0;i < onecount3; i++)
{
if (subcat3[i][1] == addthree)
{
document.addform.addfour_id.options[document.addform.addfour_id.length] = new Option(subcat3[i][0], subcat3[i][2]);
}
}
}
</script>
列表控件中的change事件:
<select name="addone_id" onChange="changelocation1(document.addform.addone_id.options[document.addform.addone_id.selectedIndex].value)">
<option value="" selected>选择国家</option>
<%
sql="select * from SMT_addone order by SMT_addone_id Asc"
set rs=server.createobject("ADODB.Recordset")
rs.open sql,conn,1,1
while not rs.eof%>
<option value="<%=rs("SMT_addone_id")%>"><%=rs("SMT_addone")%></option>
<%
rs.movenext
wend
rs.Close()
%>
</select>
<select name="addtwo_id"onChange="changelocation2(document.addform.addtwo_id.options[document.addform.addtwo_id.selectedIndex].value)">
<option selected value="">选择省份</option>
</select>
<select name="addthree_id"onChange="changelocation3(document.addform.addthree_id.options[document.addform.addthree_id.selectedIndex].value)">
<option selected value="">选择市区</option>
</select>
<select name="addfour_id">
<option selected value="">选择县区</option>
</select>