|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
我在作asp程序时常常碰到这种情况: 将数据库中的数据(如所有雇员名)列在列表框中,程序要求进行选择其中一项或多项提交到下一个页面。 但麻烦的是假如数据(如雇员)过多,会给客户的选择带来麻烦--要从很长的列表中进行数据定位。最好的解决方式是用户在选择前采用模糊查询的方法进行数据定位,正确找出需要选择的雇员名,再选择、提交。 问题出现在我们程序员面前:如何不刷新页面筛选从数据库中筛选数据。本人的方式有两种: 1、采用双列表框的方式 2、采用XML方式 本文主要介绍第一种方式:采用双列表框的方式 编程思想: 采用双列表框,其中一个为隐藏状态,另一个是显示给用户看的列表框。 程序开始将数据(如雇员姓名)分别装进两个列表框中,当用户需要筛选雇员时首先将显示列表框清空,再更据筛选条件将数据从隐藏列表框装入显示列表框中。 这样即可实现不刷新页面筛选数据库中的内容。 实现: 下面以SQL SERVER为例,筛选NorthWind库中Employees表的雇员名进行说明。 <html> <head> <title>不刷新页面查询的方式</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <script language="javascript"> function search_onclick(){ //得到筛选雇员的名字 searchtext=window.searchContent.value; //首先移除在所有查询结果列表中的选项 j=searchObj.length ; for (i = j-1; i>=0; i--) { searchObj.remove(i); } if(searchtext!=""){ //显示符合筛选条件的雇员 j=searchSource.length; for(i=0;i<j;i++){ searchsource=searchSource.options(i).text; k=searchsource.indexOf(searchtext); if(k!=-1){ option1=document.createElement("option"); option1.text=searchsource; option1.value=searchSource.options(i).value; searchObj.add(option1); } } } else{ //假如没有输入查询条件则显示所有雇员 j=searchSource.length; for(i=0;i<j;i++){ searchsource=searchSource.options(i).text; option1=document.createElement("option"); option1.text=searchsource; option1.value=searchSource.options(i).value; searchObj.add(option1); } } } </script> <body bgcolor="#FFFFFF" text="#000000"> <% servername="wyb" \\\'服务器名 user="sa" \\\'用户名 pw="" \\\'用户密码 databasename="northwind" \\\'数据库名 set conn=server.CreateObject("adodb.connection") conn.Open "DRIVER=SQL Server;SERVER="&servername&";UID="&user&";pwd="&pw&";DATABASE="&databasename set rs=server.CreateObject("adodb.recordset") sql="Select employeeid,lastname from employees order by employeeid" rs.Open sql,conn%> <table width="80%" border="1"> <tr> <td> <input type="text" name="searchContent"> <input type="button" name="Button" value="查询" onclick="javascript:return search_onclick()"> </td> </tr> <tr> <td> 查询结果<br> <select name="searchObj" size="10"> <%do while not rs.eof%> <option value="<%=rs("employeeid")%>"><%=rs("lastname")%></option> <%rs.movenext loop %> </select> <select name="searchSource" size="10" style="display:none"> <% rs.movefirst do while not rs.eof%> <option value="<%=rs("employeeid")%>"><%=rs("lastname")%></option> <%rs.movenext loop %> </select> </td> </tr> </table> <%rs.close set rs=nothing %> </body> </html> 返回类别: 教程 上一教程: 简体中文编码对应器 下一教程: ASP进阶之文章在线治理更新(7) 您可以阅读与"不刷新页面筛选数据库中的数据"相关的教程: · 不刷新页面查询数据库中数据的方式-XML方式 · 将数据库中的信息存储至XML文件中 · ACCESS通用-自动替换数据库中的字符串 · 不刷新页面改变下拉菜单内容 · 对数据库中的记录用上一条下一条显示(二) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |