服务器 频道

在ASP网页中实现dropdown控件动态添加选项

  【IT168 服务器学院】一、问题的提出

  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=”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%> 
0
相关文章