数据库的三级菜单实现

数据库的三级菜单实现,第1张

<SCRIPT LANGUAGE="JavaScript">

<!--

function CreateSelect(_FormName,_SName,_SValue,_Ds,_AllOptionStr,ShowType)

{

//三级关链菜单通用版

//作者:海娃, 有问题请到http://www.51windows.Net留言。

if (_FormName=="")

_FormName = "all"

var _DsArr = _Ds.split("|")

var _Ds1,_Ds2,_Ds3

var _Ds1 = _DsArr[0]

var _Ds2 = (_DsArr.length>1)?_DsArr[1]:_DsArr[0]

var _Ds3 = (_DsArr.length>2)?_DsArr[2]:_DsArr[0]

var _SNameArr = _SName.split("|")

var _SName1,_SName2,_SName3

var _SName1 = _SNameArr[0]

var _SName2 = (_SNameArr.length>1)?_SNameArr[1]:_SNameArr[0]

var _SName3 = (_SNameArr.length>2)?_SNameArr[2]:_SNameArr[0]

var _SValueArr = _SValue.split("|")

var _SValue1,_SValue2,_SValue3

var _SValue1 = _SValueArr[0]

var _SValue2 = (_SValueArr.length>1)?_SValueArr[1]:_SValueArr[0]

var _SValue3 = (_SValueArr.length>2)?_SValueArr[2]:_SValueArr[0]

if (ShowType==3){

_AllOptionStr = _AllOptionStr.replace(/\(\(/ig,"\(\("+_Ds3+"\^")

_AllOptionStr = _AllOptionStr.replace(/\{\{/ig,"\{\{"+_Ds2+"\(\("+_Ds3+"\*\*")

}

else if(ShowType==2){

_AllOptionStr = _AllOptionStr.replace(/\{\{/ig,"\{\{"+_Ds2+"\(\("+_Ds3+"\*\*")

}

else if(ShowType==1){

_AllOptionStr = _AllOptionStr.replace(/\(\(/ig,"\(\("+_Ds3+"\^")

}

var AllStr = _Ds1 + "{{"+ _Ds2 + "(("+ _Ds3 +"||"+_AllOptionStr

//alert(AllStr)

var _AR0 = AllStr.split("||")

document.writeln("<select name=\"" + _SName1 + "\" size=\"1\" onChange=\""+_SName1+"redirect(this.options.selectedIndex)\">")

for (var i1 = 0i1 <_AR0.lengthi1++)

{

var Area1Str = _AR0[i1]

var _AR10 = Area1Str.split("{{")

var _AR11 = _AR10[0].split("@")

var Tstr1 = _AR11[0]

var Vstr1 = (_AR11.length==2)?_AR11[1]:_AR11[0]

document.writeln("<option value=\""+Vstr1+"\">"+Tstr1+"<\/option>")

}

document.writeln("<\/select>")

document.writeln("<select name=\"" + _SName2 + "\" size=\"1\" onChange=\""+_SName1+"redirect1(this.options.selectedIndex)\">")

var _AR111 = _Ds2.split("@")

var Tstr11 = _AR111[0]

var Vstr11 = (_AR111.length==2)?_AR111[1]:_AR111[0]

document.writeln("<option value=\""+Vstr11+"\">"+Tstr11+"<\/option>")

document.writeln("<\/select>")

document.writeln("<select name=\"" + _SName3 + "\" size=\"1\">")

var _AR222 = _Ds3.split("@")

var Tstr22 = _AR222[0]

var Vstr22 = (_AR222.length==2)?_AR222[1]:_AR222[0]

document.writeln("<option value=\""+Vstr22+"\">"+Tstr22+"<\/option>")

document.writeln("<\/select>")

document.writeln("<S"+"CRIPT LANGUAGE=\"JavaScript\" defer>")

document.writeln("<!--")

document.writeln("var "+_SName1+"NewAllStr = \""+ AllStr +"\"")

document.writeln("var "+_SName1+"_AR0 = "+_SName1+"NewAllStr.split(\"||\")")

document.writeln("var "+_SName1+"groups=document."+ _FormName +"." + _SName1 + ".options.length")

document.writeln("var "+_SName1+"group=new Array("+_SName1+"groups)")

document.writeln("for (i=0i<"+_SName1+"groupsi++){")

document.writeln(" "+_SName1+"group[i]=new Array()")

document.writeln("}")

document.writeln("for (var i1 = 0i1 <"+_SName1+"_AR0.lengthi1++){")

document.writeln(" var Area1Str = "+_SName1+"_AR0[i1]")

document.writeln(" var _AR10 = Area1Str.split(\"{{\")")

document.writeln(" var _AR12 = _AR10[1].split(\"**\")")

document.writeln(" for (var i2 = 0i2 <_AR12.lengthi2++){")

document.writeln(" var Area2Str = _AR12[i2]")

document.writeln(" var _AR20 = Area2Str.split(\"((\")")

document.writeln(" var _AR211 = _AR20[0].split(\"@\")")

document.writeln(" var Tstr2 = _AR211[0]")

document.writeln(" var Vstr2 = (_AR211.length==2)?_AR211[1]:_AR211[0]")

document.writeln(" "+_SName1+"group[i1][i2]=new Option(Tstr2,Vstr2)")

document.writeln(" }")

document.writeln("}")

document.writeln("var "+_SName1+"temp = document."+ _FormName +"." + _SName2)

document.writeln("function "+_SName1+"redirect(x){")

document.writeln(" for (m="+_SName1+"temp.options.length-1m>0m--)")

document.writeln(" "+_SName1+"temp.options[m]=null")

document.writeln(" for (i=0i<"+_SName1+"group[x].lengthi++){")

document.writeln(" "+_SName1+"temp.options[i]=new Option("+_SName1+"group[x][i].text,"+_SName1+"group[x][i].value)")

document.writeln(" }")

document.writeln(" "+_SName1+"temp.options[0].selected=true")

document.writeln(" "+_SName1+"redirect1(0)")

document.writeln("}")

document.writeln("var "+_SName1+"Group2s=document."+ _FormName +"." + _SName2 + ".options.length")

document.writeln("var "+_SName1+"Group2=new Array("+_SName1+"groups)")

document.writeln("for (i=0i<"+_SName1+"groupsi++){")

document.writeln(" "+_SName1+"Group2[i]=new Array("+_SName1+"group[i].length)")

document.writeln(" for (j=0j<"+_SName1+"group[i].lengthj++){")

document.writeln(" "+_SName1+"Group2[i][j]=new Array()")

document.writeln(" }")

document.writeln("}")

document.writeln("for (var i1 = 0i1 <"+_SName1+"_AR0.lengthi1++){")

document.writeln(" var Area1Str = "+_SName1+"_AR0[i1]")

document.writeln(" var _AR10 = Area1Str.split(\"{{\")")

document.writeln(" var _AR12 = _AR10[1].split(\"**\")")

document.writeln(" for (var i2 = 0i2 <_AR12.lengthi2++){")

document.writeln(" var Area2Str = _AR12[i2]")

document.writeln(" var _AR20 = Area2Str.split(\"((\")")

document.writeln(" _AR212 = _AR20[1].split(\"^\")")

document.writeln(" for (var i3 = 0i3 <_AR212.lengthi3++){")

document.writeln(" Area3Str = _AR212[i3]")

document.writeln(" _AR3 = Area3Str.split(\"@\")")

document.writeln(" Tstr3 = _AR3[0]")

document.writeln(" Vstr3 = (_AR3.length==2)?_AR3[1]:_AR3[0]")

document.writeln(" "+_SName1+"Group2[i1][i2][i3]=new Option(Tstr3,Vstr3)")

document.writeln(" }")

document.writeln(" }")

document.writeln("}")

document.writeln("var "+_SName1+"temp1=document."+ _FormName +"." + _SName3 + "")

document.writeln("function "+_SName1+"redirect1(y){")

document.writeln(" for (m="+_SName1+"temp1.options.length-1m>0m--)")

document.writeln(" "+_SName1+"temp1.options[m]=null")

document.writeln(" for (i=0i<"+_SName1+"Group2[document."+ _FormName +"." + _SName1 + ".options.selectedIndex][y].lengthi++){")

document.writeln(" "+_SName1+"temp1.options[i]=new Option("+_SName1+"Group2[document."+ _FormName +"." + _SName1 + ".options.selectedIndex][y][i].text," + _SName1 + "Group2[document."+ _FormName +"." + _SName1 + ".options.selectedIndex][y][i].value)")

document.writeln(" }")

document.writeln(" "+_SName1+"temp1.options[0].selected=true")

document.writeln("}")

document.writeln("\/\/-->")

document.writeln("<\/script>")

document.writeln("<s"+"cript language=\"JavaScript\">")

document.writeln("<!--")

document.writeln("function "+_SName1+"SetValue(){")

document.writeln(" try{")

document.writeln(" if (\""+_SValue1+"\"!=\"\"){")

document.writeln(" document."+ _FormName +"."+_SName1+".value=\""+_SValue1+"\"")

document.writeln(" "+_SName1+"redirect(document."+ _FormName +"."+_SName1+".options.selectedIndex)")

document.writeln(" if (\""+_SValue2+"\"!=\"\"){")

document.writeln("document."+ _FormName +"."+_SName2+".value=\""+_SValue2+"\"")

document.writeln(""+_SName1+"redirect1(document."+ _FormName +"."+_SName2+".options.selectedIndex)")

document.writeln("if (\""+_SValue3+"\"!=\"\")")

document.writeln(" document."+ _FormName +"."+_SName3+".value=\""+_SValue3+"\"")

document.writeln(" }")

document.writeln(" }")

document.writeln(" }")

document.writeln(" catch(e){")

document.writeln(" }")

document.writeln("}")

document.writeln("window.attachEvent(\"onload\","+_SName1+"SetValue)")

document.writeln("\/\/-->")

document.writeln("<\/script>")

}

//-->

</script>

<%

set conn=Server.CreateObject("ADODB.Connection")

dbpath=Server.MapPath("db1.mdb")

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0Jet OLEDB:Database Password=Data Source=" &dbpath

dim SelectStr

SelectStr = ""

dim sql1,sql2,sql3

dim rs1,rs2,rs3

dim i1,i2,i3

'使用缓存,application("liststr"),将添加,编辑或删除一个数据时,用application("liststr") = empty清空缓存

application("liststr") = empty

if isempty(application("liststr")) then

'//一级分类开始

sql1 = "select c1id,c1name from class1"

set rs1 = conn.execute(sql1)

i1 = 0

while not rs1.eof

if i1 >0 then

SelectStr = SelectStr &"||"

end if

SelectStr = SelectStr &rs1("c1name") &"{{"

'显示与值不同时,用下面一行

'SelectStr = SelectStr &rs1("c1name") &"@"&rs1("c1id") &"{{"

'//二级分类开始

sql2 = "select c2id,c2name from class2 where c1name = '"&replace(rs1("c1name"),"'","''") &"'"

set rs2 = conn.execute(sql2)

i2 = 0

while not rs2.eof

if i2 >0 then

SelectStr = SelectStr &"**"

end if

SelectStr = SelectStr &rs2("c2name") &"(("

'显示与值不同时,用下面一行

'SelectStr = SelectStr &rs2("c2name") &"@"&rs2("c2id") &"(("

'//三级分类开始

sql3 = "select c3id,c3name from class3 where c2name = '"&replace(rs2("c2name"),"'","''") &"'"

set rs3 = conn.execute(sql3)

i3 = 0

while not rs3.eof

if i3 >0 then

SelectStr = SelectStr &"^"

end if

SelectStr = SelectStr &rs3("c3name")

'显示与值不同时,用下面一行

'SelectStr = SelectStr &rs3("c3name") &"@" &rs3("c3id")

i3 = i3 + 1

rs3.movenext

wend

rs3.close

set rs3 = nothing

'//三级分类结束

i2 = i2 + 1

rs2.movenext

wend

rs2.close

set rs2 = nothing

'//二级分类结束

i1 = i1 + 1

rs1.movenext

wend

rs1.close

set rs1 = nothing

application("liststr") = SelectStr

end if

'//一级分类结束

%>

<SCRIPT LANGUAGE="JavaScript">

<!--

var AllStr1 = "<% = application("liststr") %>"

//-->

</SCRIPT>

<FORM name="HwForm">

<HR>选择一次<br>

<SCRIPT LANGUAGE="JavaScript">

CreateSelect("","S_13|S_23|S_33","","请选择地区@|请选择省份@|请选择城市@",AllStr1,0)

</SCRIPT>

<HR>选择三次<br>

<SCRIPT LANGUAGE="JavaScript">

CreateSelect("HwForm","S_1|S_2|S_3","华北地区|山东|济宁","请选择地区@|请选择省份@|请选择城市@",AllStr1,3)

</SCRIPT>

</FORM>

以WPS 2019版本为例:

关于excel 多级下拉菜单怎么做,在WPS「表格(Excel)」中 *** 作方法如下:

1、首先,我们在表格将数据分别录入到Sheet2和Sheet3中,Sheet2中是一级和二级,Sheet3中是二级和三级的数据。和之前制作二级下拉菜单的方式差不多,我们先进入Sheet2中,选择所有数据,点击「公式-指定-只保留「首行」前面的勾,其他的全部取消掉。同样的方法,我们再次进入Sheet3中进行 *** 作;

2、设置一级下拉菜单:进入Sheet1,选中A2单元格,进入「数据-有效性-有效性-选择序列」,在「来源」中选择Sheet2中的「A1:C1」单元格(就是一级下拉菜单的内容);

(注意:设置完成后续先选中一个选项,否则设置二级时会提示错误)

3、设置二级下拉菜单。光标定位到B2单元格,然后进入「数据-有效性-有效性-选择序列」「来源」中输入「=INDIRECT(A2)」确定;

4、设置三级下拉菜单。选中C2单元格,同样的 *** 作,只是在「来源」中输入的是「=INDIRECT(B2)」。最后,我们选中A2:C2单元格,向下填充一下。此时,我们的多级下拉菜单就已经全部完成。

问题一:excel表格怎么设置二级菜单 选中你需要设定第一级下拉菜单的区域

单击【数据】 数据有效性

设置允许 选择[序列]

单击来源,选择一级下拉菜单数据区域(点击确定就有以及下拉菜单了,下面继续二级。)

选中第一个二级菜单内容

单击公式--定义名称(或者按Ctrl+F3打开名称管理器 *** 作新建)

名称写成对应一级的名字(浙江)

单击确定,同样的方法完成第二个二级菜单江苏

选中需要设置二级菜单的区域

单击数据-数据有效性

在d出的窗口中选择允许序列,来源输入=INDIRECT(A1)

点击确定即可完成二级菜单的创建了。同样再定义市的名称就可以继续进行多级菜单的创建。

问题二:excel表格中设置二级下拉菜单怎样做选项 1、先建立一个sheet1工作表,里面存放物品对应关系的分类,并选中 A列 已有并可能会增加的物品范围,在左上角输入: 物品 回车

2、在sheet2表格中选中要列表选择输入物品的A列单元格范围;转到“数据”工具栏,点击:数据有效性>数据有效性

3、在d出的“数据有效性”对话框中,“允许”选择:序列;“来源”输入公式:=物品;点确认

4、在sheet2的B2单元格输入公式:

=IFERROR(VLOOKUP(A2,sheet1!A:B,2,0),) 回车

5、B2下拉填充至B列下方其他单元格,然后在点击A列单元格中的下拉箭头,可选择物品种类输入

6、当A列输入物品种类后,B列对应的单元格将自动填充相关的分类

问题三:Excel如何设置二级下拉菜单自动填充 这是弧做的表格,sheet1是分类对照表,sheet2是效果表;

以后还需要填加别的东西,直接在sheet1里面写好,在sheet2里就自动出现在下拉箭头里;

想学详细过程再联系我。

问题四:如何在excel表中设置二级下拉菜单 数据有效性啊

问题五:怎样实现excel下拉表格二级菜单 Excel表格二级下拉菜单的3种方法_百度经验 jingyan.baidu/...8

问题六:怎样在excel中利用有效性序列建立二级下拉菜单 试试、看看,是否所需!

设置“数据”表

A列 B列

部门员工

A 张三 李四

B 王二 郑大

C 刘一 王五

D 初一 赵钱

……

命名:

选中A列,在“名称框”中输入“部门”,回车确认。

选中B列,在“名称框”中输入“员工”,回车确认。

在“菜单”表制作下拉菜单:

制作一级下拉菜单

选中A1:B1单元格区域;

执行“数据/有效性”命令,打开“数据有效性”对话框;

在“设置”选项卡下,“允许”选择“序列”、“来源”中输入“部门,员工”(不含引号,用英文逗号分隔);

选中“忽略空值”、“提供下拉箭头”,单击“确定”按钮,完成一级下拉菜单制作。

此时在A1、B1中,单击右侧的下拉按钮进行选择输入。

制作二级下拉菜单

从A2单元格起向下选中单元格区域;

执行“数据/有效性”命令,打开“数据有效性”对话框;

在“设置”中,“允许”选择“序列”、“来源”中输入公式“=INDIRECT(A$1)”;

选中“忽略空值”、“提供下拉箭头”,单击“确定”按钮,完成“部门”的二级菜单制作。

同法制作“员工”的二级菜单。此时“来源”中输入公式“=INDIRECT(B$1)”。

此时在部门、员工下面的单元格中,单击右侧的下拉按钮进行“部门”、“员工”的选择输入。

问题七:请教表单中如何设置二级下拉菜单 首先选中要制作下拉菜单的单元格或单元格区域----数据---有效性---允许---选择序列---来源---输入要填充的各个选项---比如输入: 男,女 (两个选项之间用英文半角逗号相隔)---确定

如果是大量的选项需要写入,则可以用一辅助列来实现

问题八:excel表格三级子菜单设置 50分 在EXCEL的sheet1表中选中A列,在数据菜单下选择有效性菜单,进入数据有效性对话框进行设置。

在d出的数据有效性对话框的有效性条件下选择允许序列,在来源里填写数据库中的一级菜单“生活用品、文具类”。需要注意的是它们之间用英语的逗号隔开。同时选中忽略空值和提供下拉箭头选项。

由于数据有效性不支持从另一个EXCEL工作表中直接选取单元格,因此要做定义名称的工作,用快捷键ctrl+F3打开定义名称对话框,用自己认为好记的名词做为定义后的词,在引用位置设置需要引用的单元格。

举公司的例子 一级菜单是公企 外企 个体户 公企下有甲乙丙丁 外企下有ABCD公司 个体户下有**。

本例中使用pany来代表sheet2中的A1至D1单元格的一级企业。 使用two来代表sheet2中A2这个单元格,由于二级单位有可能很多,因此只引用一个,在后面写公式时再详细说明。

定义在对二级单位进行数据有效性性设置时在来源中写如下的公式:=OFFSET(two,,MATCH($A2,pany,)-1,COUNTA(OFFSET(two,,MATCH($A2,pany,)-1,65535)))这个公式的意思是A列某单元格的内容是某个一级公司,则在本列对应的单元格内显示这个一级公司下属的二级企业的下拉菜单供人们选择,最多可以显示65535个。 =OFFSET(second,,MATCH($A2,first,)-1,COUNTA(OFFSET(second,,MATCH($A2,first,)-1,65535))) =INDIRECT(province)

多级的一次类推。

这个就是数据有效性多重下拉菜单的效果,当A2单元格选中工业企业时,B2单元格就自动列出工业企业的二级单位名称,这样就达到了即能防止填表人乱填表,又能减轻填表人的劳动强度的目的。

问题九:如何使用Excel表格制作二级下拉菜单 1、选择A列,在“数据”选项下的“数据有效性”“设置”中,选择“序列”,来源选择D1:F1区域,确定;

2、选择B列,在“数据”选项下的“数据有效性”“设置”中,选择“序列”,来源输入

=OFFSET(C$1,1,MATCH(A1,D1:F1,),3,) 确定;

3、在A1单元格的下拉选项选择任一数据,则对应B1单元格的下拉选项为A1单元格内容对应的选项


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6731279.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存