日期:2012-05-07  浏览次数:20889 次

一、问题的提出
Active Server Pages(ASP)是服务器端脚本编写的环境,它可以组合 HTML 页、脚本命令和 ActiveX 组件的功能创建和运行动态、交互的Web应用程序。然而ASP网页制作中,在使用dropdown下拉选择框控件时,通常只能对固定值进行选择,不能添加新的选项,给实际应用带来很大的不便。为了增强dropdown控件具有动态添加选项的功能,本文提供了一种将textbox控件和dropdown控件相结合的方法,使dropdown控件实现了自由添加选项的功能。

二、问题解决的思路
创建一个简单的数据库,并配置数据源,建立与数据库的连接。当每次访问asp页面时,将数据库中的内容依次写入dropdown控件的选择项中。如果向dropdown控件中添加新的选项,首先在textbox控件内输入新的选项值,并将值添加到数据库。当再次打开页面时,便实现了dropdown控件动态添加选项的功能。
三、问题的实现
1.建一个简单的数据库,以Sql server为例,如以车辆类型为字段field1,在数据库中建立车辆类型表table1;
2.配置DSN数据源连接数据库
(1)配置DSN数据源
a、在运行的web服务器中,打开控制面板
b、双击32 ODBC图标,然后选System DSN
c、单击Add,添加一个DSN入口,选择一个ODBC Driver如SQL Server,并且击Finish
d、在Data Source Name 框中,配置好数据源名如car,然后单击select选择相应的数据库。
e、测试是否连接成功
(2)连接数据库。利用ActiveX服务器构件,创建数据库的连接。数据库访问构件使用ADO(Active Data Object)提供Connection对象,可以使用该对象建立和管理应用程序和ODBC数据库之间的连接。Connection对象具有各种属性和方法,可以使用它们打开和关闭数据库的连接,并且发出查询请求来更新信息。例如,下面的脚本文件dbconn.inc创建Connection对象,接着打开数据库连接:
set ors=server.createobject("adodb.connection")
ors.open "dsn=car;uid=sa;pwd=****"
3.在asp网页firstweb.asp中添加dropdown及textbox控件。页面刷新时将数据库中的数据添加至dropdown1控件的选项栏中,代码如下:
<!--#include file="dbconn.inc"--> ‘引入数据库连接文件,此文件与firstweb.asp应
’在同一目录下
<body>
<form name=”form1” method=”post” action="firstweb.asp"> ‘用post方法将form1
’信息发送到 Web 服务器
<tr> ‘一行的开始
<th align=”right” nowrap width=”35%” >车型:</th>
<td align=”left” nowrap width=”65%”>
<select name=”dropdown1” >
<option value=" " selected>请选择</option>
<% sql="select field1 from table1" ‘将数据库中的数据添加至dropdown1控
set orstemp=ors.execute(sql) ‘件的选项栏中
while not orstemp.eof %>
<option value=<%=orstemp(0)%>><%=orstemp(0)%></option>
<%orstemp.movenext
wend
%>
</select> ’引入dropdown下拉框
<input name=”textbox1” value="" > ‘引入textbox文本输入框
</tr>
</form>
<tr >
<td colspan=2 align=”center” > ‘通过submit按钮的onclick事件将form1的
‘内容提交
<input type=”image” src=http://www.163design.net/a/f/”img/submit.gif” onclick=document.form1.submit()>
</td>
</tr>
</body>
4.响应onclick事件,将textbox1中添加的值添加至数据库,在当前网页添加如下代码:
<% if request(“textbox1”)<>”” then
sql="select table1 from th000 where field1="&request("textbox1")
set orstempt=ors.execute(sql)
if orstempt.eof then
sqlt="insert into table1 (field1) values('"&request("textbox1")&"')"
ors.execute(sqlt)
end if
end if%>