三级动态下拉菜单怎么做?

exten 2003-12-31 08:06:35
要求三级动态下拉菜单。
分别是年、月、日。
并且要求只能选择当前日期7天后的日期。
...全文
163 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jfly301 2004-01-01
  • 打赏
  • 举报
回复
顶一下,谢谢
超级大笨狼 2004-01-01
  • 打赏
  • 举报
回复
哦,有点毛病,把年这行也加上判断改成:
年<SELECT id=s1 name=s1 onchange="vbs:aaa"></SELECT>
超级大笨狼 2004-01-01
  • 打赏
  • 举报
回复
演示:www.adr.gov.cn/download/ddd.htm
当前日期7天内的日期,你实验就可以了
for i=1 to 7
msgbox date()+i
next
自己看懂代码修改吧!
受人以鱼不如授人以渔!
超级大笨狼 2004-01-01
  • 打赏
  • 举报
回复
下拉列表选日期这么做,用到了isdate()函数,看!
<form id=f>
年<SELECT id=s1 name=s1 ></SELECT>
月<SELECT id=s2 name=s2 onchange="vbs:aaa"></SELECT>
日<SELECT id=s3 name=s3></SELECT>
</form>
<SCRIPT LANGUAGE=vbscript>
'初始年
MyAdd "f.s1",1970,2050
'初始月
MyAdd "f.s2",1,12
'初始日
MyAdd "f.s3",1,31
sub MyAdd(S,x,y)'增加
set obj=eval(S)
for i=x to y
set o=document.createElement("OPTION")
o.text=i
o.value=i
obj.add o
next
end sub
sub MyRemove(S)'删除
set obj=eval(S)
for each opt in obj.options
obj.remove opt.index
next
end sub
sub aaa'自定义过程,用来改变s3日期
dim mydate,maxdate
'先清空全部,最好从28号以后清空,但是这样效率低人感觉不到,偷点懒不是罪
MyRemove "f.s3"
for i=1 to 31
mydate=f.s1.value & "-" & f.s2.value & "-" & i
if isdate(mydate) then '判断是否是有效日期
maxdate=i
else
exit for
end if
next
MyAdd "f.s3",1,maxdate
end sub
</SCRIPT>
exten 2003-12-31
  • 打赏
  • 举报
回复
top
exten 2003-12-31
  • 打赏
  • 举报
回复
哪个控件可以做???
shleo 2003-12-31
  • 打赏
  • 举报
回复
搜索一下联动,很多的
美丽心情 2003-12-31
  • 打赏
  • 举报
回复
汗!日期这个还得判断闰年~~我都是用MS自己带的一个控件:(
exten 2003-12-31
  • 打赏
  • 举报
回复
二楼的,您的这个复制/粘贴产品不适合我的需要。
谢谢三楼的。
flying310 2003-12-31
  • 打赏
  • 举报
回复
找大灰狼狼要也行。
xieyj 2003-12-31
  • 打赏
  • 举报
回复
可以参考这个网站的源码:http://www.aspxcn.com/
yangzixp 2003-12-31
  • 打赏
  • 举报
回复
三级联动下拉菜单
说明:数据库表lb,字段:id(自动编号),jb(级别,分1,2,3级),mc(名称),sj(上级id).


<!--#include file="conn.asp"-->


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<link href="style.css" rel="stylesheet" type="text/css">


<%dim count1
set rs1=server.CreateObject("adodb.recordset")
sql1="select * from lb order by id desc"
rs1.open sql1,conn,1,1
%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
count1 = 0
do while not rs1.eof
%>
subcat[<%=count1%>] = new Array("<%= trim(rs1("mc"))%>","<%= trim(rs1("sj"))%>","<%=trim(rs1("id"))%>");
<%
count1 = count1 + 1
rs1.movenext
loop
rs1.close
%>
onecount=<%=count1%>;

function changelocation(locationid)
{
document.form1.stypecode.length = 0;

var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{

if (i== 0)
{
document.form1.stypecode.options[document.form1.stypecode.length] = new Option("选择二类", "");
}

if (subcat[i][1] == locationid)
{
document.form1.stypecode.options[document.form1.stypecode.length] = new Option(subcat[i][0], subcat[i][2]);
}
}

}
</script>








<%dim count2
set rs2=server.CreateObject("adodb.recordset")
sql2="select * from lb order by id desc"
rs2.open sql2,conn,1,1
%>
<script language = "JavaScript">
var onecount2;
onecount2=0;
subcat2 = new Array();
<%
count2 = 0
do while not rs2.eof
%>
subcat2[<%=count2%>] = new Array("<%= trim(rs2("mc"))%>","<%= trim(rs2("sj"))%>","<%=trim(rs2("id"))%>");
<%
count2 = count2 + 1
rs2.movenext
loop
rs2.close
%>
onecount2=<%=count2%>;

function changelocation2(locationid2)
{
document.form1.stypecode2.length = 0;

var locationid2=locationid2;
var i2;
for (i2=0;i2 < onecount2; i2++)
{
if (i2== 0)
{
document.form1.stypecode2.options[document.form1.stypecode2.length] = new Option("选择三类", "");
}
if (subcat[i2][1] == locationid2)
{
document.form1.stypecode2.options[document.form1.stypecode2.length] = new Option(subcat2[i2][0], subcat2[i2][2]);
}
}

}
</script>
</head>
<body><BR><div align="center">
<table width="638" border="0" cellspacing="1" bgcolor="#FF00FF">
<form action="main.asp" name="form1" method="post" >
<%dim rs,sql,selclass
set rs=server.CreateObject("adodb.recordset")
%>
<tr bgcolor="#FFFFFF">
<td align="center" width="134"><font size="2">商品类别</font></td>
<td width="189"><font size="2">一类:
<select name="btypecode" onChange="changelocation(document.form1.btypecode.options[document.form1.btypecode.selectedIndex].value)">
<option value="">选择一类</option>
<%
sql3="select * from lb where jb='1' order by id desc"
rs.open sql3,conn,1,1
%>
<option value="<%=rs("id")%>"><%=rs("mc")%></option>
<%
selclass=rs("id")
rs.movenext
do while not rs.eof%>
<option value="<%=rs("id")%>"><%=rs("mc")%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
</font>
</td>
<td width="190"><font size="2">二类:
<select name="stypecode" onChange="changelocation2(document.form1.stypecode.options[document.form1.stypecode.selectedIndex].value)">
<option value="" selected>选择二类</option>
<%
sql4="select * from lb where jb='2' and sj="&selclass&" order by sj desc"
rs.open sql4,conn,1,1%>
<option value="<%=rs("id")%>" ><%=rs("mc")%></option>
<%
selclass2=rs("id")
rs.movenext
do while not rs.eof%>
<option value="<%=rs("id")%>"><%=rs("mc")%></option>
<%
rs.movenext
loop
rs.close
%>
</select></font></td>
<td width="190"><font size="2">三类:
<select name="stypecode2">
<option value="" selected>选择三类</option> <%
sql4="select * from lb where jb='3' and sj="&selclass2&" order by sj desc"
rs.open sql4,conn,1,1%>
<option value="<%=rs("id")%>" ><%=rs("mc")%></option>
<% rs.movenext
do while not rs.eof%>
<option value="<%=rs("id")%>"><%=rs("mc")%></option>
<%
rs.movenext
loop
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
</select></font></td>
</tr>
</form>
</table>
</div>
</body>
</html>


参考
exten 2003-12-31
  • 打赏
  • 举报
回复
大灰狼兄,
我要求只能选择当前日期7天后的日期啊,怎么做????
超级大笨狼 2003-12-31
  • 打赏
  • 举报
回复
演示:www.adr.gov.cn/download/ccc.htm
超级大笨狼 2003-12-31
  • 打赏
  • 举报
回复
你这个问题最好这么做,美观实用,不用下拉列表
<div id=timepicker style="position:absolute;z-index:4; visibility: hidden;">
<OBJECT
id=Calendar1
style="LEFT: 0px; TOP: 0px"
classid="clsid:8E27C92B-1264-101C-8A2F-040224009C02">
</OBJECT>
</div>
日期:
<input type="text" readonly>年
<input type="text" readonly>月
<input type="text" readonly> 日
<input name=ipttime2 type="button" value="△" onClick="vbs:mygetdate me" >
<script language=VBS>
sub mygetdate(obj)
timepicker.style.visibility="visible"
timepicker.style.top=window.event.clientY-20
timepicker.style.left=window.event.clientx-310
if obj.value="△" then

obj.value="▲"

else
timepicker.style.visibility="hidden"
obj.value="△"
if Calendar1.Day>0 and Calendar1.Month>0 and Calendar1.Year>0 then
getpretext(obj,1).value= Calendar1.Day
getpretext(obj,2).value= Calendar1.Month
getpretext(obj,3).value= Calendar1.Year
end if
end if
end sub
function getpretext(myobj,objnum)
mynum=0
set obj2=myobj.previousSibling
do
if ucase(obj2.nodename)=ucase("input") then
if ucase(obj2.type)=ucase("text") then
mynum=mynum+1
if mynum=objnum then
set getpretext=obj2
exit do
else
set obj2=obj2.previousSibling
end if
else
set obj2=obj2.previousSibling
end if
else
set obj2=obj2.previousSibling
end if
loop
end function
</script>
zhangxdd 2003-12-31
  • 打赏
  • 举报
回复
大灰狼的这帖
http://expert.csdn.net/Expert/topic/2537/2537402.xml?temp=.7548944
nattyfish 2003-12-31
  • 打赏
  • 举报
回复
支持与学习!!!
exten 2003-12-31
  • 打赏
  • 举报
回复
top

28,406

社区成员

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

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