传引递参数问题和下拉框数据怎样取数据库中的资料

LONGFOR 2003-04-25 09:14:54
我想做一个这样的传递参数的页面﹕一个文本框中填写数据﹐能够把它的参数传到一个下拉框里来显示不同的选项﹐而下拉框中的选项又是来源于数据库中﹗请问要怎样写﹐传递参数与取数据?有见意的都给分﹐有代码的给高分﹗不够可再给﹗
...全文
29 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackeyyang 2003-04-25
  • 打赏
  • 举报
回复
你的意思是,输入一个参数,把这个参数,传到server,然后调用数据库中,相对应的值,对吗?
awaysrain 2003-04-25
  • 打赏
  • 举报
回复
你可以参考下面这篇文章

解决双下拉选单的连动问题

关键词:HTML, XML

废话少说,就以选取省份后改变城市选项为例,
省份、城市数据存放于后台MSSQL Server,就一个表:Citys:字段State、City。
看程序:



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

CitySelect.asp
<%@ LANGUAGE="vbscript" %>
<%
strPathInfo = Request.ServerVariables("PATH_INFO")
strPathInfo = "http://" & Request.ServerVariables("SERVER_NAME") & Left(strPathInfo,InstrRev(strPathInfo,"/"))
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Provider = "sqloledb"
Conn.Open "Data Source=ServerName;Initial Catalog=dbName;", "sa", ""
Set RS = Conn.Execute("SELECT DISTINCT state FROM citys")
arrPr = RS.GetRows()
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<TITLE></TITLE>
<SCRIPT language=javascript>
<!--
function ChooseCity()
{
//Clear City List
for(var i=form1.SelCity.options.length-1;i>=0;--i)
{
form1.SelCity.options.remove(i)
}
var sState = form1.SelState.options(form1.SelState.selectedIndex).value;
var oXMLDoc = new ActiveXObject('MSXML');
sURL = '<%=strPathInfo%>XMLCity.asp?State=' + sState;
oXMLDoc.url = sURL;
var oRoot=oXMLDoc.root;
if(oRoot.children != null)
{
for(var i=0;i<oRoot.children.length;++i)
{
oItem = oRoot.children.item(i);
sName = oItem.text;
var oOption = document.createElement('OPTION');
oOption.text = sName;
oOption.value = sName;
form1.SelCity.options.add(oOption);
}
}
}
-->
</SCRIPT>
</HEAD>
<BODY>
<FORM action="" method="post" id="form1" name="form1">
<SELECT name="SelState" id="SelState" onchange="ChooseCity()">
<%For i = LBound(arrPr,2) To UBound(arrPr,2)%>
<OPTION value="<%=arrPr(0,i)%>"><%=arrPr(0,i)%></OPTION>
<%Next%>
</SELECT>
<SELECT name="SelCity" id="SelCity">
</SELECT>
</FORM>
</BODY>
</HTML>

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

XMLCity.asp
<%@ LANGUAGE="VBSCRIPT" %>
<%
sState = Request.QueryString("State")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Provider = "sqloledb"
Conn.Open "Data Source=ServerName;Initial Catalog=dbName;", "sa", ""
Set RS = Conn.Execute("SELECT city FROM citys WHERE state='" & sState & "'")
arrCity = Rs.GetRows()
%>
<?xml version="1.0" encoding="gb2312" ?>
<citys>
<%For i = LBound(arrCity,2) To UBound(arrCity,2)%>
<city><%=arrCity(0,i)%></city>
<%Next%>
</citys>

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

几点说明:
1、简单的说,这种方法就是利用客户端MSXMl对象去load一个xml,而这个xml文件的后缀是asp,呵呵,传个querysting过去就可以为所欲为了,好处是显然的:页面不刷新;传输的数据少,不需要把所有数据全传到客户端 :)

2、这种方法Zee最早是在White前辈的一篇帖子里看到的,不过他老人家的sample是用来取服务器端的时间,大材小用阿。 :P

3、本方法对ie4以上版本有效。(这也是为什么不用"microsoft.XMLDOM"对象而用"msxml"的原因)
liangzhg 2003-04-25
  • 打赏
  • 举报
回复
建议使用xml来写,
wxb80 2003-04-25
  • 打赏
  • 举报
回复
gz
awaysrain 2003-04-25
  • 打赏
  • 举报
回复
你可以用XML
sURL的页面就是你根据条件查询并生成XML格式的数据的页面
给你个函数参考一下

function change(source,target,tname,type,typetext)
{

for(var i=target.options.length-1;i>=0;--i)
{
target.options.remove(i) //删除原来的选项
}
var oXMLDoc = new ActiveXObject('MSXML');
sURL = '<%=strPathInfo%>XML_'+ source.options(source.selectedIndex).value+'.asp?tName='+tname.value+'&opt='+source.options(source.selectedIndex).text;
oXMLDoc.url = sURL;
var oRoot=oXMLDoc.root;
if(oRoot.children != null)
{
for(var i=0;i<oRoot.children.length;++i)
{
oItem = oRoot.children.item(i);
sName = oItem.text;
sValue = oItem.getAttribute("id");
var oOption = document.createElement('OPTION');
oOption.text = sName;
oOption.value = sValue;
target.options.add(oOption);
}
}
}
Reker熊 2003-04-25
  • 打赏
  • 举报
回复
2.根據文本框輸入文本,進行提交,並且查詢得出結果寫入到Select中
Query.asp
<form name=frmQuery action="query.asp" method=post>
<input type=text name=txtQueryStr>
<input type=submit value=提交>
</form>
<select>
<%
On Error Resume Next
If Request.Form("txtQueryStr")<>"" Then
tmpQueryStr=Replace(Request.Form("txtQueryStr"),"'","''") '替換掉文本框中可能輸入的單引號
Set Conn=Server.CreateObject("ADODB.Connection")
Set Rs=Server.CreateObject("ADODB.RecordSet")
Conn.Open "Provider=SQLOLEDB.1;Data Source=server;DataBase=database;UID=uid;PWD=pwd;"
Rs.ActiveConnection=Conn
Rs.Source="Select * from 表名 Where 字段='" &tmpQueryStr& "'"
Rs.Open Rs.Source,Conn,1,1
While Not Rs.EOF
%>
<option value="<%=Rs("字段")%>"><%=Rs("字段")%></option>
<%
Rs.MoveNext
Wend
End If
If Err Then
Response.Write Err.Description
Response.End
End If
%>
</select>
Reker熊 2003-04-25
  • 打赏
  • 举报
回复

不是很明白你的意思,我估計可能有兩種意思

1.Select選項從數據庫中查詢的出,已經固定,文本框中輸入值,如果與選項一致,則選中
Query.asp
<input type=text name=txtQueryStr>
<input type=button value=Query onclick="QuerySel()"
<select id=SelOption>
<%
On Error Resume Next
Set Conn=Server.CreateObject("ADODB.Connection")
Set Rs=Server.CreateObject("ADODB.RecordSet")
Conn.Open "Provider=SQLOLEDB.1;Data Source=server;DataBase=database;UID=uid;PWD=pwd;"
Rs.ActiveConnection=Conn
Rs.Source="Select * from 表名 Where 字段='字符串'"
Rs.Open Rs.Source,Conn,1,1
While Not Rs.EOF
%>
<option value="<%=Rs("字段")%>"><%=Rs("字段")%></option>
<%
Rs.MoveNext
Wend
If Err Then
Response.Write Err.Description
Response.End
End If
%>
</select>
<script language=JavaScript>
<!--
function QuerySel()
{
var a=document.getElementById("SelOption");
for (i=0;i<a.length;i++)
{
if(a.options[i].value==document.getElementById("txtQueryStr").value)
{a.selectedIndex=i;break;}
}
}
//-->
</script>
possible_Y 2003-04-25
  • 打赏
  • 举报
回复
如果数据不是很多,可以先把数据库中数据一次全读出放到数组中
LONGFOR 2003-04-25
  • 打赏
  • 举报
回复
tdl982324(石井坚)
我的意思不是很明了﹐让你产生误解了﹐我的意思是﹕
如:
书类代号: {100,200,300,400}
书类名称: {小说﹐史载文书﹐教课书﹐杂志}
书本代号﹕{101…400}
书名: {小说:《绝代双娇》《一代女皇》《警匪一家》《还珠格格》
史载文书:《史记》﹐《孙子兵法》﹐
教课书:《高等数学》﹑《微机原理》﹐
杂志:《青年文摘》﹑《读者》}

代号都是输入文本﹐名称是取于数据库中﹐输入100能得到书类名称﹕小说
选择小说能得到书类代码﹕100
同时在书本名称选项能得到《绝代双娇》﹑《一代女皇》﹑《警匪一家》﹑《还珠格格》
如果此时我选《一代女皇》能在书本代号得到102
这些功能都是要在一个页面上实现﹐我利用这些选择的条件再进行下一步的查询。

各位给的见意,方法,我都看了,谢谢!都会给分的!等我解决了!

fason 2003-04-25
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1687/1687993.xml?temp=.4326746
awaysrain 2003-04-25
  • 打赏
  • 举报
回复
是啊

28,391

社区成员

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

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