asp中关于下拉组合筐的使用小问题?(100分)

  • 主题发起人 主题发起人 yingzigo
  • 开始时间 开始时间
Y

yingzigo

Unregistered / Unconfirmed
GUEST, unregistred user!
请教您一个小问题:
我有两个下拉组合筐,一个组合筐显示数据库中的一个字段值(这个我会写)。
我的问题是:一个数据表有两个字段,如何让第二个组合筐显示值和第一个组合筐选择值相同值的第二个字段值?
不知道我说明白没?
数据表字段: A1 A2
记 录:家用电器 电视
家用电器 洗衣机
交通工具 汽车
家用电器 VCD
交通工具 飞机
比如我的第一个组合筐选择字段A1的“家用电器”,我想让第二个组合筐里立刻显示出“电视 洗衣机 VCD”
比如我的第一个组合筐选择字段A1的“交通工具”,我想让第二个组合筐里立刻显示出“汽车 飞机”
请您在忙中帮我一下???
谢谢
礼!
xiaomao

 
最简单的方法不过也是最笨的方法是在选择第一个框之后重新刷新这个页面,
根据你的选择再动态生成第二个下拉框中的内容。
当然还有事先生成数组,用js根据用户第一个下垃框的选择控制第二个下拉列表框中的值。
 
我想用SQL可以实现,我以前做过相似的东西,不过是用ASP做的,在DWU4中做的,需要的话,我可以把源码发给你,或许对你有点启发.
 
可以这样实现(我的程序中的一段代码)
query.asp部分代码:
<script language="JavaScript">
<!--
[red]function ChooseType(sel1,sel2)
{
for(var i=sel2.options.length-1;i>0;--i)
{
sel2.options.remove(i)
}
var sState = sel1.options(sel1.selectedIndex).value;

var oXMLDoc = new ActiveXObject('MSXML');

sURL = 'XML_depname.asp?id=' + sState;

oXMLDoc.url = sURL;

var oRoot=oXMLDoc.root;

if(oRoot.children != null)
{
var sss
for(var i=0;i<oRoot.children.length;++i)
{
oItem = oRoot.children.item(i);

sName = oItem.text;
sss=sName.split("/");

var oOption =do
cument.createElement('OPTION');

oOption.text = sss[1];

oOption.value = sss[0];

sel2.options.add(oOption);

}
}
}
}[/red]
//-->
</script>
部分html代码:
<td bgcolor="#efefef"><span >请选择编制部门:</span><br>
<select name="seldw" OnChange="ChooseType(document.queryform.seldw,document.queryform.seldep)">
<option value="">——选择单位——</option>
<%
for i=0 to rs1_numrows-1
%>
<option value="<%=(rs1.Fields.Item("单位ID").Value)%>"><%=(rs1.Fields.Item("单位名称").Value)%></option>
<%
rs1.MoveNext()
next
%>
</select>
<br>
<select name="seldep" >
<option value="">——选择部门——</option>
</select>
</td>
</tr>
XML_depname.asp代码:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../Connections/conn.asp" -->
<%
response.buffer=true
Dim id
id = request.querystring("id")
%>
<%
set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_conn_STRING
rs.Source = "SELECT 部门id,部门名称 FROM 编制部门表 WHERE 单位id=" &amp;id
rs.CursorType = 0
rs.CursorLocation = 3
rs.LockType = 1
rs.Open()
rs_numrows=rs.recordcount
%>
<?xml version="1.0" encoding="gb2312" ?>
<Nodes>
<%
for i= 0 to rs_numrows-1
%>
<ChildNode><%=rs("部门id")&amp;"/"&amp;rs("部门名称")%></ChildNode>
<%
rs.movenext
next
%>
</Nodes>
<%
rs.close()
%>
 
参考这一贴,其中的问题比你还要复杂!!!!!!!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1442010
 
用VBSCRIPT啦
 
用javascript
刚看了jsxjd的例子~~建议看看~问题就解决了
 
用javascript或者vbscript就可以实现了
 
你用Sql的Group by 子句便可以了,
Group by A1,A2
 
后退
顶部