不刷新页面筛选数据库中的数据

我在作asp程序时经常遇到这种情况:
将数据库中的数据(如所有雇员名)列在列表框中,程序要求进行选择其中一项或多项提交到下一个页面。
但麻烦的是如果数据(如雇员)过多,会给客户的选择带来麻烦--要从很长的列表中进行数据定位。最好的解决方法是用户在选择前采用模糊查询的方式进行数据定位,准确找出需要选择的雇员名,再选择、提交。
问题出现在我们程序员面前:如何不刷新页面筛选从数据库中筛选数据。本人的方法有两种:
1、采用双列表框的方法
2、采用XML方法
本文主要介绍第一种方法:采用双列表框的方法
编程思想:
采用双列表框,其中一个为隐藏状态,另一个是显示给用户看的列表框。
程序开始将数据(如雇员姓名)分别装进两个列表框中,当用户需要筛选雇员时首先将显示列表框清空,再更据筛选条件将数据从隐藏列表框装入显示列表框中。
这样即可实现不刷新页面筛选数据库中的内容。
实现:
下面以SQL SERVER为例,筛选NorthWind库中Employees表的雇员名进行说明。

 1<html>
 2<head>
 3<title>不刷新页面查询的方法</title>
 4<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
 5</head>
 6<script language="javascript">   
 7function search_onclick(){   
 8//得到筛选雇员的名字   
 9//www.knowsky.com   
10searchtext=window.searchContent.value;   
11  
12//首先移除在所有查询结果列表中的选项   
13//www.knowsky.com   
14j=searchObj.length ;   
15for (i = j-1; i>=0; i--)   
16{   
17searchObj.remove(i);   
18}   
19if(searchtext!=""){   
20//显示符合筛选条件的雇员   
21j=searchSource.length;   
22for(i=0;i<j;i++){   
23searchsource=searchSource.options(i).text;   
24k=searchsource.indexOf(searchtext);   
25if(k!=-1){   
26option1=document.createElement("option");   
27option1.text=searchsource;   
28option1.value=searchSource.options(i).value;   
29searchObj.add(option1);   
30}   
31}   
32}   
33else{   
34//如果没有输入查询条件则显示所有雇员   
35j=searchSource.length;   
36for(i=0;i<j;i++){   
37searchsource=searchSource.options(i).text;   
38option1=document.createElement("option");   
39option1.text=searchsource;   
40option1.value=searchSource.options(i).value;   
41searchObj.add(option1);   
42}   
43}   
44}   
45//www.knowsky.com   
46</script>
47<body bgcolor="#FFFFFF" text="#000000">   

servername="wyb" '服务器名
user="sa" '用户名
pw="" '用户密码
databasename="northwind" '数据库名
set conn=server.CreateObject("adodb.connection")
conn.Open "DRIVER=SQL Server;SERVER="&amp;servername&amp;";UID="&amp;user&amp;";pwd="&amp;pw&amp;";DATABASE="&amp;databasename
set rs=server.CreateObject("adodb.recordset")
sql="Select employeeid,lastname from employees order by employeeid"
rs.Open sql,conn

 1<table border="1" width="80%">
 2<tr>
 3<td>
 4<input name="searchContent" type="text"/>
 5<input name="Button" onclick="javascript:return search_onclick()" type="button" value="查询"/>
 6</td>
 7</tr>
 8<tr>
 9<td> 查询结果<br/>
10<select name="searchObj" size="10">   

do while not rs.eof

1<option ```"="" employeeid")="" value="```
2=rs(">```
3=rs("lastname")
4```</option>   

rs.movenext
loop

1</select>
2<select name="searchSource" size="10" style="display:none">   

'www.knowsky.com
rs.movefirst
do while not rs.eof

1<option ```"="" employeeid")="" value="```
2=rs(">```
3=rs("lastname")
4```</option>   

rs.movenext
loop

1</select>
2</td>
3</tr>
4</table>   

rs.close
set rs=nothing

1</body>
2</html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus