利用ASP嵌套JS+SQL Server打造两级连动下拉框(二) (转)

利用ASP嵌套JS+SQL Server打造两级连动下拉框(二) (转)[@more@]

  利用ASP嵌套JS+sql SERVER打造两级连动下拉框(2)

TwoLevel.asp

XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

下拉列表示例

 

 

  dim conn 

  dim connstr

  on error resume next

  set conn=server.Createobject("ADOdb.connection")

  connstr="driver={SQL SERVER};server=wen;uid=sa;pwd=;database=DB_ProvinceCat"

  conn.Open connstr

 

  set Rs=server.createobject("ADODB.recordset")

  Rs.CursorLocation = adUseClient 

  SQL="select * from Tb_Province"

  Rs.open SQL,conn,1,1

  if Not Rs.Eof then

    Dim strjscript

    strJScript=""

  Response.Write("

    Response.Write("function setcategory(S){")&chr(13)

  Response.Write("S.category.length="+Cstr(Rs.Recordcount+1)+";")&chr(13)

    dim i

    i=0

    While Not Rs.Eof

  strJScript=strJScript+"S.category.options["+CStr(i)+"].value="+chr(34)+Trim(Rs("ProvinceCode"))+chr(34)+";"+chr(13)

  strJScript=strJScript+"S.category.options["+CStr(i)+"].text="+chr(34)+Trim(Rs("ProvinceName"))+chr(34)+";"+chr(13)

    i=i+1

    Rs.MoveNext

  Wend

    Response.write(strJScript)

    Response.Write("S.category.options["+CStr(i)+"].value="+chr(34)+"无"+chr(34)+";"+chr(13))

  Response.Write("S.category.options["+CStr(i)+"].text="+chr(34)+"**请选择省份**"+chr(34)+";"+chr(13))

   Response.Write("S.category.options["+Cstr(i)+"].selected=true;"+chr(13))

    Response.Write("}")&chr(13)

   Rs.Close

   Set Rs=Nothing

  end if

 

  set Rs=server.createobject("ADODB.recordset")

  Rs.CursorLocation = adUseClient

    SQL="Select Num=Count(*),Tb_Province.ProvinceCode From Tb_Province,Tb_City where Tb_Province.ProvinceCode=substring(Tb_City.CityCode,1,2)  group by Tb_Province.ProvinceCode order by Tb_Province.ProvinceCode"

    Rs.open SQL,conn,1,1

    if Not Rs.Eof then

   

    dim Num(30),j

    j=0

    Do While Not Rs.Eof

    Num(j)=Rs("Num")

    j=j+1

    Rs.MoveNext

    Loop

    end if

  Rs.Close

    set Rs=Nothing

  SQL=""

  set Rs=server.createobject("ADODB.recordset")

  Rs.CursorLocation = adUseClient

  SQL="Select Tb_Province.*,Tb_City.* From Tb_Province,Tb_City where Tb_Province.ProvinceCode=substring(Tb_City.CityCode,1,2) order by Tb_Province.ProvinceCode"

  Rs.open SQL,conn,1,1

 

  j=0

    if Not Rs.Eof then

    Response.Write("function setsmall_cat(D){")&chr(13)

  Response.Write("var valuecategory=D.category.options[D.category.selectedIndex].value;")&chr(13)

    Response.write("if(valuecategory.indexOf("+chr(34)+"无"+chr(34)+")==0){"+chr(13)&_

  "D.small_cat.length=1;"&_

  "D.small_cat.options[0].value="+chr(34)+"无"+chr(34)+";"+chr(13)&_

  "D.small_cat.options[0].text="+chr(34)+"**请选择城市**"+chr(34)+chr(13)&_

  "D.small_cat.options[0].selected=true;"+chr(13)&_

  "}")

     

    i=0

    dim NextLevel,UpCatCode,overflow

    NextLevel="N"

  overflow="N"

    strJScript=""

  Do While Not Rs.Eof

    UpcateCode=Trim(Rs("ProvinceCode")) 

  if  NextLevel="N" then

    strJScript="else if(valuecategory.indexOf("+chr(34)+UpcateCode+chr(34)+")==0){"+chr(13)

    strJScript=strJScript+"D.small_cat.length="+Cstr(Num(j))+";"+chr(13)

    j=j+1

  NextLevel="Y"

    end if   

    strJScript=strJScript+"D.small_cat.options["+CStr(i)+"].value="+chr(34)+Trim(Rs("CityCode"))+chr(34)+";"+chr(13)

  strJScript=strJScript+"D.small_cat.options["+CStr(i)+"].text="+chr(34)+Trim(Rs("CityName"))+chr(34)+";"+chr(13)

   

    i=i+1

 

   

    Rs.MoveNext

 

    if UpcateCode<>Trim(Rs("ProvinceCode")) then

       overflow="Y"

    end if

 

    if  overflow="Y" then

    Response.write(strJScript+"}")

   strJScript=""

   overflow="N"

   NextLevel="N"

   i=0

  end if

    Loop

   

    Response.Write("}")&chr(13)

   Rs.Close

   Set Rs=Nothing

  end if

  Conn.close

  set conn=nothing

 

 

%>

 

 

RM name="select" method="POST" action="#">

   请选择:

 

第三,进行代码调试

程序win2000+IIS+SQL Server7.0环境下调试通过。

  (全文完)


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-958154/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-958154/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值