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

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

我在作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="查询" οnclick="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> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值