http://dotnet.aspx.cc/Exam/MultiSelect.zip
下载http://sz.luohuedu.net/xml/Exam/MultiSelect.asp
演示
下载http://sz.luohuedu.net/xml/Exam/MultiSelect.asp
演示
解决方案 »
- 如何快速入门啊JAVASCRIPT
- alert 关闭问题
- 在线编辑DOC excel文件的保存,编辑?
- canvas画图工具 历时一周开发 短小精悍 求PK
- 用GeoServer做GIS服务器,如何用栅格图层做底图,矢量图层显示在上面,请详述,十分感谢!
- 求救:javascript 处理大数字(超过小数点前要至少保持20位精度)
- 【难么?】如何判断网页的元素全部加载完毕??
- 请问那里有可以在线编辑内容的程序下载啊?
- 一个关于弹出窗的问题,有点棘手
- 用JavaScript在Frame[0]中访问Frame[1]页面Form元素,如果Frame[1]与Frame[0]同一WebServer没有问题,如果不是同一WebServer,就会报“拒绝访问”。请问,有办法解决吗?
- 阿信大哥帮帮忙嘛
- 如何判断一个输入的url是否合法
/*
* fason
*/var DATA =[
["text1"],
["select1","select2"]
];var S = [["测试11","测试22"],["测试AA","测试BB"]];function doChange(obj) {
var index = obj.selectedIndex;
for (var i=0; i<DATA.length;i++)
V(obj.form, i, index);
}function doChange2(obj) {
var x = obj.selectedIndex;
with(document.form1.elements["select2"]) {
length = 0;
for (var i=0;i<S[x].length;i++)
options[length] = new Option(S[x][i],S[x][i]);
}
}function V(f, n, x) {
for (var i=0; i<DATA[n].length;i++)
f.elements[DATA[n][i]].style.display = n == x ? "" : "none";
}
window.onload = function(){
doChange(document.form1.elements["select0"])
doChange2(document.form1.elements["select1"])
}
</SCRIPT>
<form name="form1">
<select name="select0" onchange="doChange(this)">
<option>本部门</option>
<option>非本部门</option>
</select>
<input name="text1">
<select name="select1" onchange="doChange2(this)">
<option selected>测试1</option>
<option>测试2</option>
</select>
<select name="select2"></select>
</form>
<html>
<head>
<script language=javascript>
var arr="浙江|江苏|安徽|江西";var arr0 = "杭州|宁波|温州|绍兴"; //这些数据可以从数据库中取得
var arr1 = "南京|苏州|无锡|常州";
var arr2 = "合肥|翕县|黄山|祁门";
var arr3 = "南昌|九江|赣州|上饶"; var arr00 = "杭州A区|杭州B区";
var arr01 = "宁波A区|宁波B区";
var arr02 = "温州A区|温州B区";
var arr03 = "绍兴A区|绍兴B区"; var arr10 = "南京A区|南京B区";
var arr11 = "苏州A区|苏州B区";
var arr12 = "无锡A区|无锡B区";
var arr13 = "常州A区|常州B区"; var arr20 = "合肥A区|合肥B区";
var arr21 = "翕县A区|翕县B区";
var arr22 = "黄山A区|黄山B区";
var arr23 = "祁门A区|祁门B区"; var arr30 = "南昌A区|南昌B区";
var arr31 = "九江A区|九江B区";
var arr32 = "赣州A区|赣州B区";
var arr33 = "上饶A区|上饶B区"; //alert(eval("arr"+2+1));
function AddOptions(dltObj,arrObj)
{
dltObj.innerHTML="";
var arrLocation=arrObj.split("|");
for(var i=0;i<arrLocation.length;i++){
var opt=document.createElement("OPTION");
dltObj.add(opt);
opt.value=i;
opt.text=arrLocation[i];
}
}
function init(){
AddOptions(dltProvince,eval('arr'));
AddOptions(dltCity,eval('arr'+dltProvince.selectedIndex));
AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));
}
</script>
</head>
<body onLoad="init();">
<table width="300" cellpading="0" cellspacing="0" border="0">
<tr>
<td width="100"><select id="dltProvince" onchange="AddOptions(dltCity,eval('arr'+dltProvince.selectedIndex));AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));" style="width:100%"></select>
</td>
<td width="100"><select id="dltCity" onchange="AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));" style="width:100%"></select>
</td>
<td width="100"><select id="dltArea" style="width:100%"></select>
</td>
</tr>
</table>
</body>
</html>
首先你建立一个数据库"menu.mdb"
在里面分别建立三个表,
表一名称叫:"yj"
里面字段为
yjid 属性为[自动编号]
yname 属性为[文本]
表二名称叫"ej"
里面字段为
ejid 属性为[自动编号]
ename 属性为[文本]
yjid 属性为[数字]表二名称叫"sj"
里面字段为
sjid 属性为[自动编号]
sname 属性为[文本]
ejid 属性为[数字]
yjid 属性为[数字]下面是维护一级菜单
把下面代码保存成yj.asp
<!--#include file="conn.asp"-->
<%
name=Split(trim(Request.form("name")), ",")
if request("name2")="" then
%>
<html>
<head>
<title>无标题文档</title>
</head><body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><form name="form" method="post" action="fl.asp">
<p>
<textarea name="name" cols="60" rows="8" id="name"></textarea>
</p>
<p> <input type="submit" name="Submit" value="提交">
<input type="hidden" name="name2" value="2">
</p>
</form></td>
</tr>
</table>
</body>
</html>
<%
else
For i=0 To UBound(name)
set rs=server.CreateObject("adodb.recordset")
rs.open"yj",Conn,1,3
rs.addnew
rs("yname")=trim(name(i))
rs.update
rs.close
set rs=nothing
next
response.redirect"yj.asp"
end if
%>下面是维护二级菜单
把下面代码保存成ej.asp<!--#include file="conn.asp"-->
<%
name=Split(trim(Request.form("name")), ",")
shen=request.form("shen")
if shen="" then
%>
<html>
<head>
<title>无标题文档</title>
</head><body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="31"><div align="center">| <a href="fl.asp">一级分类</a> | <a href="ejfl.asp">二级分类</a> | <a href="sjfl.asp">三级分类</a> | <a href="fjfl.asp">四级分类</a> | </div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><form name="form" method="post" action="ejfl.asp">
<p>
<select name="shen" id="yjid">
<%
set rs=server.CreateObject("adodb.recordset")
rs.open"yj",Conn,1,3
while not rs.eof
%>
<option value="<% =trim(rs("yid"))%>"><% =trim(rs("yname"))%></option>
<%
rs.movenext
wend
%>
</select>
</p>
<p>
<textarea name="name" cols="80" rows="10" id="name"></textarea>
</p>
<p> <input type="submit" name="Submit" value="提交">
</p>
</form></td>
</tr>
</table>
</body>
</html>
<%
else
For i=0 To UBound(name)
set rs=server.CreateObject("adodb.recordset")
rs.open"ej",Conn,1,3
rs.addnew
rs("ename")=trim(name(i))
rs("yid")=shen
rs.update
rs.close
set rs=nothing
next
response.redirect"ej.asp"
end if
%>
把下面代码保存成sj.asp<!--#include file="conn.asp"-->
<%
name=Split(trim(Request.form("name")), ",")
yjid=request.form("yjid")
ejid=request.form("ejid")
if yjid="" and ejid="" then
%>
<html>
<head>
<title>无标题文档</title>
<%
set rs18=server.CreateObject("adodb.recordset") '|
rs18.open"sj",Conn,1,3
%>
<script language = "JavaScript">
<!--
var onecount;
onecount=0;
subcat2 = new Array();
<%
count = 0
do while not rs18.eof
%>
subcat2[<%=count%>] = new Array("<% =trim(rs18("sname"))%>","<% =trim(rs18("yid"))%>","<% =trim(rs18("sid"))%>");
<%
count = count + 1
rs18.movenext
loop
rs18.close
set rs18=nothing
%>
onecount=<%=count%>; function changelocation(yid)
{
document.myform.ejid.length = 0; var yid=yid;
var i;
document.myform.ejid.options[0] = new Option('选择类别','');
for (i=0;i < onecount; i++)
{
if (subcat2[i][1] == yid)
{
document.myform.ejid.options[document.myform.ejid.length] = new Option(subcat2[i][0], subcat2[i][2]);
}
} }
//-->
</script>
</head><body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="31"><div align="center">| <a href="fl.asp">一级分类</a> | <a href="ejfl.asp">二级分类</a> | <a href="sjfl.asp">三级分类</a> | <a href="fjfl.asp">四级分类</a> | </div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><form name="myform" method="post" action="sjfl.asp">
<p>
<select name="yjid" onChange="changelocation(document.myform.yjid.options[document.myform.yjid.selectedIndex].value)" size="1">
<option>专业类别</option>
<%
set rs12=server.CreateObject("adodb.recordset")
rs12.open"yj",conn,1,3
while not rs12.eof
%>
<option value="<% =rs12("yid")%>">
<% =rs12("yname")%>
</option>
<%
rs12.movenext
wend
%>
</select><select name="ejid" onChange="changelocation2(document.myform.ejid.options[document.myform.ejid.selectedIndex].value)" size="1">
<option selected></option>
</select>
</p>
<p>
<textarea name="name" cols="70" rows="20" id="name"></textarea>
</p>
<p> <input type="submit" name="Submit" value="提交">
</p>
</form></td>
</tr>
</table>
</body>
</html>
<%
else
For i=0 To UBound(name)
set rs=server.CreateObject("adodb.recordset")
rs.open"sj",Conn,1,3
rs.addnew
rs("yid")=yjid
rs("eid")=ejid
rs("sname")=trim(name(i))
rs("time")=now()
rs.update
rs.close
set rs=nothing
next
response.redirect"sj.asp"
end if
%>
下面是数据库链接文件
保存为conn.asp<%
'on error resume next
'dim conn,connstr,dbpath
'更改数据库名字
dbpath="menu.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
'如果你的服务器采用较老版本Access驱动,请用下面连接方法
'connstr="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(dbpath)
conn.Open connstr
%>最后是显示三级联动菜单代码
把下面保存成ld.asp
<!--#include file="conn.asp"--><%
'----------------------------------------------------------------------------------
set cityrs=server.createobject("ADODB.Recordset")
citysql="select * from ej"
cityrs.open citysql,conn,1,3
'----------------------------------------------------------------------------------
set cours=server.CreateObject("ADODB.Recordset")
cousql="select * from sj"
cours.open cousql,conn,1,3
'----------------------------------------------------------------------------------
%>
<script language="javascript">
//县级目录
var countycount;
countycount=0;
county=new Array();
<%
countys=0
for i=0 to cours.recordcount
%>
county[<%=countys%>]=new Array("<%=trim(cours("sname"))%>","<%=trim(cours("eid"))%>","<%=trim(cours("yid"))%>","<%=trim(cours("sid"))%>")
<%
countys=countys+1
cours.movenext
if cours.eof then exit for
next
cours.close
%>
countycount=<%=countys%>
//以祖父级的ID和父亲ID来确定子孙
//prosel:祖父ID(省级ID) citysel:父亲ID(市级ID)
function changecounty(prosel,citysel){
document.form.county.length=0;
var prosel=prosel;
var citysel=citysel
for (var j=0;j<countycount;j++)
{
if (county[j][2]==prosel && county[j][1]==citysel){
document.form.county.options[document.form.county.length]=new Option(county[j][0],county[j][3])
//changetown()
}
}
}//市级目录
var citycount;
citycount=0
city=new Array();
<%
citys=0
for s=0 to cityrs.recordcount
%>
city[<%=citys%>]=new Array("<%=trim(cityrs("eid"))%>","<%=trim(cityrs("ename"))%>","<%=trim(cityrs("yid"))%>","<%=trim(cityrs("ename"))%>")
<%
citys=citys+1
cityrs.movenext
if cityrs.eof then exit for
next
cityrs.close
%>
citycount=<%=citys%>//触发事件
function changecity(prosel)
{
document.form.city.length=0;
var prosel=prosel; //得到祖父级ID(省级)
//由祖父级ID来确定父亲级目录默认的ID;
for (var l=0;l<citycount;l++)
{
if (city[l][2]==prosel){
var cityse;
cityse=l;
break;
}
}
//由祖父级ID来确定父亲级的所有<option></option>选项的值
for (var l=0;l<citycount;l++)
{
if (city[l][2]==prosel){
document.form.city.options[document.form.city.length]=new Option(city[l][3],city[l][0])
}
}
changecounty(prosel,city[cityse][0])
}
function checkdata(){
//.....其他数据验证
//.....
//.....
//由于city和county最后得到的值是ID,所以下面的操作是在提交的时候给便于取名字
document.form.cityname.value=document.form.city.options[document.form.city.selectedIndex].value
document.form.countyname.value=document.form.county.options[document.form.county.selectedIndex].value
return true
}
</script>
<%
set prors=server.CreateObject("ADODB.Recordset")
prosql="select * from yj"
prors.open prosql,conn,1,3
%>
<form name="form" method="post" action="" >
<select name="province" onChange="changecity(document.form.province.options[document.form.province.selectedIndex].value)" class="kuang" >
<option value=""selected>选择一级分类</option>
<option value="<%=trim(prors("yid"))%>"><%=trim(prors("yname"))%></option>
<%
dim proselect
proselect=prors("yid")
prors.movenext
for i=0 to prors.recordcount
%>
<option value="<%=trim(prors("yid"))%>"><%=trim(prors("yname"))%></option>
<%
prors.movenext
if prors.eof then exit for
next
%>
</select>
<select name="city" onChange="changecounty(document.form.province.options[document.form.province.selectedIndex].value,document.form.city.options[document.form.city.selectedIndex].value)" class="kuang" >
</select><input type="hidden" name="cityname" value="">
<select name="county" class="kuang" >
</select><input type="hidden" name="countyname" value=""></form><%
'释放对象
set cityrs=nothing
set cours=nothing
set prors=nothing
set rs=nothing
%>至此完成全部,不懂的再问我吧!
http://blog.csdn.net/xxrl/archive/2003/09/03/9950.aspx
http://community.csdn.net/Expert/topic/3048/3048959.xml