asp实现2级联动表单

本文介绍了一种使用ASP和JavaScript实现动态更新二级下拉列表的方法。通过预加载所有可能的选项,当用户选择第一个下拉列表时,第二个下拉列表会根据选择自动更新相关联的选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有[group]和[user]二个数据表,要求从这两个表中读出数据,并表现为二级下拉表,当选择[group]列表中的选项时,[user]列表中的选项相应改变。 
[group]表对应的数据集为rsGroup,有如下字段:lngID_Group, strName_Group 
[user]表对应的数据集为rsUser,有如下字段:lngID_User, lngGroupID, strName_User 
思路:先建立group 和user 的下拉列表;分别读入 rsGroup 和 rsUser 的数据;再建立change_select() 函数,当group 的下拉列表被改变时,执行该函数对 user 下拉列表进行更新。 

代码如下: 
<!— group 的下拉列表--------------> 
<select name="sltGroupID"  
onChange
="javascript:change_select(this.options[this.selectedIndex].value)"> 
<option value="0">用户组……</option>  
<
For i = 1 To rsGroup.RecordCount 
 Response.Write 
"<option value=’" & lngID_Group & "’>" & strName_Group & "</option>" 
 rsGroup.MoveNext 
Next 
%
> 
</select>  
<!— user 的下拉列表--------------> 
<select name="sltUserID">  
<option value="0">用户……</option> 
</select> 
<script language = "javascript">  
//读入 rsUser的数据 
arrSelect
=new Array(); 
arrSelect[
0= new Array("用户……",0,0
<
For i = 1 To rsUser.RecordCount 
%
> 
arrSelect[
<%= i %>]=new Array("<%= strName_User %>","<%= lngGroupID %>","<%= lngID_User %>"); 
<
 rsUser.MoveNext 
Next 
%
> 
//更新 user 下拉列表的函数 
function change_select(selvalue)   
{  
 document.all.sltUserID.length
=0;   
 var i; 
 
for(i=0;i<arrSelect.length;i++)  
 { 
  
if(arrSelect[i][1]==selvalue)  
  { 
   var newOption
=new Option(arrSelect[i][0],arrSelect[i][2]); 
   document.all.sltUserID.add(newOption); 
  } 
 } 

</script> 

运行结果如下: 
<!— group 的下拉列表--------------> 
<select name="sltGroupID"  
onChange
="change_select(this.options[this.selectedIndex].value)">  
<option selected value="0">用户组……</option>  
<option value=1>直属机构</option> 
<option value=2>办事处</option> 
<option value=3>技术部</option> 
</select>  
<!— user 的下拉列表--------------> 
<select name="sltUserID">  
<option selected value="0">用户……</option>  
</select> 
<script language = "javascript">  
//读入 rsUser的数据 
arrSelect
=new Array(); 
arrSelect[
0]=new Array("用户……",0,0
arrSelect[
1]=new Array("总经办","1","1"); 
arrSelect[
2]=new Array("网络中心","1","15"); 
arrSelect[
3]=new Array("公共平台","1","4"); 
arrSelect[
4]=new Array("售后部","1","20"); 
arrSelect[
5]=new Array("广州","2","24"); 
arrSelect[
6]=new Array("上海","2","23"); 
arrSelect[
7]=new Array("售前支持","3","8"); 
arrSelect[
8]=new Array("研发中心","3","9"); 
//更新 user 下拉列表的函数 
function change_select(selvalue)   

//同上,略。 

</script> 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值