用ASP程式實現二級下拉式清單
來源:互聯網
上載者:User
程式|下拉|下拉式清單 有[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"
>
<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"
>
<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>