小弟在ASP设计上出了点问题,就是下拉框的联动问题,不知道该怎么解决

captaintao 2008-04-22 06:55:14
在网上找到很多这类文章,由于自己不能够理解,所以即使抄袭下来也出问题。

我想要两个下拉框的返回值,这个例子提交表单的时候返回的是数字,我想要他具体的文字,而不是编号,联动上这个例子好像没有问题,就是提交的时候是数字ID,谁能改改,小弟不会JavaScript,看到那代码感觉比C++还麻烦,可能是看惯了C结构吧。

<!--#include file="dbp.asp"-->
<script language="JavaScript">
sall=new Array();
<%
dim i
i=0
set rs=server.CreateObject("adodb.recordset")
sql="select * from test where ssdl<>0"
rs.open sql,link,1,1
if not rs.eof then
do until rs.eof
%>
<!-- 二级菜单信息 ssdl:小类在大类里的ID,id:小类ID,newsfl:小类名称-->
sall[<%=i%>]=new Array("<%=rs("ssdl")%>","<%=rs("id")%>","<%=rs("newsfl")%>");
<%
i=i+1
rs.movenext
loop
end if
rs.close
set rs=nothing
%>
function changeselect(selvalue)
{
document.all.xl.length=0;
var selvalue=selvalue;
var i;
for(i=0;i<sall.length;i++)
{
if(sall[i][0]==selvalue)
{
var newOption1=new Option(sall[i][2],sall[i][0]);
document.all.xl.add(newOption1);
}
}
}
</script>

<select name="dl" ID="dl" onChange="changeselect(document.all.dl.options[document.all.dl.selectedIndex].value)">
<option>请选择</option>
<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from test where ssdl=0"
rs.open sql,link,1,1
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("newsfl")%></option>
<%
rs.movenext
loop
rs.close
set rs=nothing
link.close
set link=nothing
%>
</select>
   <select name="xl" ID="xl">
<option>请选择</option>
</select>
<br />
<br />

...全文
65 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wklilong 2008-04-23
是不是 比如 选择了省份 后边的下拉框就自动 生成 市的值那种啊?

如果是这样的话 我给你个方法

<%
sql1 = "select sheng.sheng,shi.shi from sheng,shi where sheng.youbian = shi.sheng"
set rs1=server.createobject("ADODB.Recordset")
rs1.open sql1,conn,1,1
%>
<script language="JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rs1.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs1("shi"))%>","<%= trim(rs1("sheng"))%>","<%= trim(rs1("shi"))%>");
<%count = count + 1
rs1.movenext
loop
rs1.close
set rs1=nothing%>
onecount=<%=count%>;
function changelocation(sheng)
{
document.myform.shi.length = 0;

var sheng=sheng;
var i;
document.myform.shi.options[0] = new Option('请选择市','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == sheng)
{
document.myform.shi.options[document.myform.shi.length] = new Option(subcat[i][0], subcat[i][2]);
}
}

}
</script>
<select name="sheng" onChange="changelocation(document.myform.sheng.options[document.myform.sheng.selectedIndex].value)" size="1">
<%
set rs1=server.createobject("ADODB.Recordset")
sql1="select * from sheng"
rs1.open sql1,conn,1,1
while not rs1.eof%>
<option value="<%=rs1("sheng")%>"><%=rs1("sheng")%> </option>
<%rs1.movenext
wend
rs1.Close()
set rs1 = nothing

%></select> <select name="shi">
<option selected><%=rs("shi")%></option>
</select>
不知道能不能看明白
思路就是 在页面载入时 把需要的数值都从数据库中取出来
当用户点击 省份的下拉列表时 触发事件 根据传过去的值 判断要显示那个市
回复
liangjianshi 2008-04-23
[Quote=引用 1 楼 songpengasp 的回复:]
我想要他具体的文字,而不是编号

-----------------------------------------

一种办法是 在从数据库 根据 编号查询一次

还有就是使用form表单提交 这样设置 xl 控件 onchange事件 取出 大类名称 小类名称 分别存入页面隐含域 即可
[/Quote]
回复
No_Data_Found 2008-04-22
我想要他具体的文字,而不是编号

-----------------------------------------

一种办法是 在从数据库 根据 编号查询一次

还有就是使用form表单提交 这样设置 xl 控件 onchange事件 取出 大类名称 小类名称 分别存入页面隐含域 即可
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-22 06:55
社区公告
暂无公告