日期:2014-05-16  浏览次数:20985 次

满分求一段ASP代码的写法
目    的:: 实现两个select下拉选择框
要    求::两个select选择框要用大类id进行关联,第一个放产品大类,第二个放产品小类。当用户改变了产品大类时,相应的产品小类也做改变----变成该大类范围内的小类集

已有条件:rs1()是大类记录集,包含:大类id:rs1("classid") 和大类名称:rs1("classname")
                    rs2()是小类记录集,包含:大类id:rs2("classid") 小类id:rs2("Lclassid") 和小类名称rs2("Lclassname") 


谢谢

------解决方案--------------------
这种比较简单,使用ajax请求比较耗资源,建议生成json使用js完成比较好。
等等,花点时间写出脚本。
------解决方案--------------------
楼主去学下js,简单的2级联动

<select name="bid" id="bid" onchange="initSid(this.value)">
<%
bid="111"'需要初始化的大类id

ss="var sidarr={};"'小类JSON字符串
while not rs1.eof
rs2.Filter="classid="&rs1("classid")'过滤得到小类数据,生成JSON数组

temp=""
while not rs2.eof
  temp="{id:"&rs2("Lclassid")&",t:'"&rs2("Lclassname")&"'},"
  rs2.movenext
wend
if temp<>"" then temp=left(temp,len(temp)-1)'去掉最后一个,
ss=ss&"sidarr['k"&rs1("classid")&"']=["&temp&"];"'大类对应的小类的JSON数组

if bid=rs1("classid") then
%>
<option value="<%=rs1("classid") %>" selected><%=rs1("classname") %></option>
<%
else
%>
<option value="<%=rs1("classid") %>"><%=rs1("classname") %></option>
<%
end if
rs1.movenext
wend
%>
</select>
<select name="sid" id="sid"></select>
<script>
<%=ss %>//小类JSON数组
var bid=document.getElementById('bid').value,sid='<%=sid %>'//需要初始化的小类id
function initSid(bid){
  var sid=document.getElementById('sid'),selectedIndex=-1;
  sid.options.length=0;
  var arr=sidarr['k'+bid];
  
  for(var i=0;i<arr.length;i++){
    sid.options.add(new Option(arr[i].t,arr[i].id));
    if(arr[i].id.toString()==sid)selectedIndex=i;
  }
  if(selectedIndex!=-1)sid.selectedIndex=selectedIndex;
}
initSid(bid)
</script>

------解决方案--------------------
<%
Dim json,subcls,sql,rs,sql1,rs1
set rs=server.createobject("adodb.recordset")
sql = "select classid,ClassName from class"
rs.open sql,conn,1,1
do while not rs.eof
    json = json &",{id:"&rs(0)&",name:'"&rs(1)&"',subclass:["
    subcls="{id:'',name:'不指定小类'}"
    set rs1=server.createobject("adodb.recordset")
    sql1="select SmallClassid,SmallClassName from SmallClass where Classid=" & rs(0)
    rs1.open sql1,conn,1,1
    do while not rs1.eof
        subcls=subcls&",{id:"&rs1(0)&",name:'"&rs1(1)&"'}"
        rs1.movenext
    loop
    rs1.close:Set rs1 = Nothing
    json = json &subcls&"]}"
rs.movenext
Loop
rs.close:Set rs = Nothing
call connclose()
%>