!!求助!二级联动菜单程序!

scc1980 2005-12-22 04:04:05
我用access建立的两个表 class1,class2
class1:
字段1:sortid 字段2:sort
sortid sort
1 钢材
2 五金
3 机械

class2:
字段1:typeid 字段2:typename 字段3:sortid

typeid typename sortid
1 板材 1
2 型材 1
3 钳子 2
4 电机 3

sortid字段将class1表和class2表联系起来

我看过省市 二级菜单 但是没调出来!请大家帮忙写下!


...全文
168 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
postcode 2005-12-23
  • 打赏
  • 举报
回复


<%
Db = "db1.mdb"
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db)
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr

If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"'注释,需要把这几个字翻译成英文。
Response.End
End If



sql = "select * from class2 order by typeid asc"
set rs = conn.execute(sql)
%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("typename"))%>","<%= trim(rs("sortid"))%>","<%= trim(rs("typeid"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount=<%=count%>;

function changelocation(locationid)
{
document.myform.smalllocation.length = 0;

var locationid=locationid;
var i;
document.myform.smalllocation.options[0] = new Option('==可选择的小类==','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.smalllocation.options[document.myform.smalllocation.length] = new Option(subcat[i][0], subcat[i][2]);
}
}

}
</script>






</head>
<body>
<form name="myform" method="post">
<p>分类:
<select name="biglocation" onChange="changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value)" size="1">
<option selected>请选择大类</option>
<%

sql1 = "select * from class1 order by sortid asc"
set rs1 = conn.Execute (sql1)
do while not rs1.eof
%>
<option value="<%=trim(rs1("sortid"))%>"><%=trim(rs1("sort"))%></option>
<%
rs1.movenext
loop
rs1.close
set rs1 = nothing
conn.Close
set conn = nothing
%>
</select>
<select name="smalllocation">
<option selected value="">==请选择小类==</option>
</select>
</p>
<p>关键词:
<input type="text" name="T4" size="20">
</p>
<p>内容:</p>
<p>
<textarea rows="9" name="S1" cols="51"></textarea>
</p>
</form>

</body>
</html>
baoshijie800 2005-12-22
  • 打赏
  • 举报
回复
<style type="text/css">
<!--
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
-->
</style>
<%
y=request.querystring("y")
m=request.querystring("m")
d=request.querystring("d")

if y="" then
y=year(date)
m=month(date)
d=day(date)
end if

call blogdate(y,m,d)

'=====================以年月日为参数的显示==============================================
sub blogdate(y,m,d) '
str1="   当前的日期是"&y&"年"&m&"月"&d&"日   " '得到当前日期的年月日

nowdate=y&"-"&m&"-"&d
lastdate=dateadd("m",-1,nowdate)
lasty=year(lastdate)
lastm=month(lastdate)

nextdate=dateadd("m",1,nowdate)
nexty=year(nextdate)
nextm=month(nextdate)

str1=str1&"<a href="&request.servervariables("path_info")&"?y="&lasty&"&m="&lastm&"&d=1"&">上一月</a> "
str1=str1&"<a href="&request.servervariables("path_info")&"?y="&nexty&"&m="&nextm&"&d=1"&">下一月</a> "
str1=str1&"<a href="&request.servervariables("path_info")&">返回今日</a>"
response.write str1

thismonth=y&"-"&m&"-1" '当前月的第一天
nextmonth=dateadd("m",1,thismonth) '下个月的第一天

num=datediff("d",thismonth,nextmonth) '当前月的天数
firstday=weekday(thismonth)-1 '得到当前月第一天的星期

'call displaydate(firstday,num)
Response.Write "<table border=1 width=""40%"" style=""border-collapse:collapse"">" & vbCrlf
Response.Write "<tr>" & vbCrlf
Response.Write "<td align=""center"">星期日</td>" & vbCrlf
Response.Write "<td align=""center"">星期一</td>" & vbCrlf
Response.Write "<td align=""center"">星期二</td>" & vbCrlf
Response.Write "<td align=""center"">星期三</td>" & vbCrlf
Response.Write "<td align=""center"">星期四</td>" & vbCrlf
Response.Write "<td align=""center"">星期五</td>" & vbCrlf
Response.Write "<td align=""center"">星期六</td>" & vbCrlf
Response.Write "</tr>" & vbCrlf

'需要参数:当前月第一天的星期firstday,当前月的天数num
for n=1 to 6
response.write "<tr>"
for i=1 to 7
thisday=0
if i>firstday then thisday=i-firstday
if n>1 then thisday=7*(n-1)+i-firstday
if thisday>num then thisday=0
if thisday=0 then
display=" "
else
display="<a href="&request.servervariables("path_info")&"?y="&y&"&m="&m&"&d="&thisday&">"&thisday&"</a>"
end if
response.write "<td align=""center"">"&display&"</td>"
next
if n=5 and (thisday=num or thisday=0) then n=n+1
response.write "</tr>"
next

Response.Write "</table>" & vbCrlf
end sub
'===================================================================

%>
xx123731 2005-12-22
  • 打赏
  • 举报
回复
http://www.bjcan.com/hengxing/readlou.asp?id=430
  • 打赏
  • 举报
回复
www.bjcan.com/hengxing/more.asp

搜索 二级 或 联动
scc1980 2005-12-22
  • 打赏
  • 举报
回复
我有搜到的 但是现在我是用调用两个表 有一个省市的我给你们贴上 你们看下怎么改!

以下市名略。

设计思想:前面四项同Province表设计思想,ProvinceID字段将Province表和City表联系起来。

2.设计样式及编码

二级联动的样式很简单,在DreamWeaver 2004里向设计页面上放置两个select下拉菜单,分别取名为Province_select、City_select,它们都在名为form1的表单里。

编码需要用到html、vbscript及javascript。首先是连接数据库,我们用常用的<!--#include file="conn.asp"-->连接。conn.asp中代码略。

其次,用Javascript和Vbscript将Province和City表中的数据读出来并使Province_select和City_select联系起来,这一步是整个程序的关键所在。
代码如下:

<script language=JavaScript>
<%
dim sql,i,j
'//////////////////////////读出 Province 表//////////////////////////
set rs_Province=server.createobject("adodb.recordset")
sql="select * from Province order by ProvinceOrder"
rs_Province.open sql,conn,1,1
%>


var selects=[];
selects['xxx']=new Array(new Option('请选择城市……','xxx'));


<%
for i=1 to rs_s.recordcount
%>


selects['<%=rs_Province("ProvinceNo")%>']=new Array(
<%
'//////////////////////////读出 City 表//////////////////////////
set rs_City=server.createobject("adodb.recordset")
sql="select * from City where ProvinceID="&rs_Province("id")&" order by ProvinceOrder"
rs_City.open sql,conn,1,1
if rs_City.recordcount>0 then
for j=1 to rs_City.recordcount
if j=rs_City.recordcount then
%>


new Option('<%=trim(rs_City("CityName"))%>','<%=trim(rs_City("CityNo"))%>'));


<%else%>


new Option('<%=trim(rs_City("Cityname"))%>','<%=trim(rs_City("CityNo"))%>'),


<%
end if
rs_City.movenext
next
else
%>
new Option('','0'));


<%
end if
rs_City.close
set rs_City=nothing
rs_Province.movenext
next
rs_Province.close
set rs_Province=nothing
%>


<!--//////////JavaScript控制联动///////////-->
function chsel(){
with (document.form1){
if(province_select.value) {
city_select.options.length=0;
for(var i=0;i<selects[province_select.value].length;i++){
city_select.add(selects[province_select.value][i]);
}
}
}
}

</script>

最后,结合html,Javascript和Vbscript实现联动效果。代码如下:

<!--//////////////////////////Province_select下拉列表//////////////////////////-->
<select name="Province_select" onChange=chsel()>
<option value="xxx" selected>请选择省份……</option>
<%
dim tmpid '定义一个临时变量用来记住省id
tmpid=0

set rs_Province=server.CreateObject("ADODB.recordset")
sql="select * from Province order by ProvinceOrder"
rs_Province.open sql,conn,1,1
while not rs_Province.eof
tmpid=rs_Province("id")
%>
<option value="<%=rs_Province("ProvinceNo")%>" ><%=trim(rs_Province("ProvinceName"))%></option>
<%
rs_Province.movenext
wend
rs_Province.close
set rs_Province=nothing
%>
</select>

<!--//////////////////////////City_select下拉列表//////////////////////////-->
<select name="City_select">
<%
set rs_City=server.createobject("adodb.recordset")
sql="select * from City where ProvinceID="&tmpid&" order by CityOrder"
rs_City.open sql,conn,1,1
while not rs_City.eof
%>
<option value="<%=rs_City("CityNo")%>"><%=trim(rs_City("CityName"))%></option>
<%
rs_City.movenext
wend
rs_City.close
set rs_City=nothing
%>
</select>

wangyingdong 2005-12-22
  • 打赏
  • 举报
回复
在CSDN里搜一下,以前应该有的!

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧