ASP学习:不刷新页面筛选数据库中的数据
我在作asp程序时经常遇到这种情况:
将数据库中的数据(如所有雇员名)列在列表框中,程序要求进行选择其中一项或多项提交到下一个页面。
但麻烦的是如果数据(如雇员)过多,会给客户的选择带来麻烦--要从很长的列表中进行数据定位。最好的解决方法是用户在选择前采用模糊查询的方式进行数据定位,准确找出需要选择的雇员名,再选择、提交。
问题出现在我们程序员面前:如何不刷新页面筛选从数据库中筛选数据。本人的方法有两种:
1、采用双列表框的方法
2、采用xml方法
本文主要介绍第一种方法:采用双列表框的方法
编程思想:
采用双列表框,其中一个为隐藏状态,另一个是显示给用户看的列表框。
程序开始将数据(如雇员姓名)分别装进两个列表框中,当用户需要筛选雇员时首先将显示列表框清空,再更据筛选条件将数据从隐藏列表框装入显示列表框中。
这样即可实现不刷新页面筛选数据库中的内容。
实现:
下面以sqlserver为例,筛选northwind库中employees表的雇员名进行说明。 <html>
<head>
<title>不刷新页面查询的方法</title>
<metahttp-equiv="content-type"content="text/html;charset=gb2312">
</head>
<scriptlanguage="javascript">
functionsearch_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>
<bodybgcolor="#ffffff"text="#000000">
<%
servername="wyb"服务器名
user="sa"用户名
pw=""用户密码
databasename="northwind"数据库名
setconn=server.createobject("adodb.connection")
conn.open"driver=sqlserver;server="&servername&";uid="&user&";pwd="&pw&";database="& databasename
setrs=server.createobject("adodb.recordset")
sql="selectemployeeid,lastnamefromemployeesorderbyemployeeid"
rs.opensql,conn%>
<tablewidth="80%"border="1">
<tr>
<td>
<inputtype="text"name="searchcontent">
<inputtype="button"name="button"value="查 询"onclick="javascript:returnsearch_onclick()">
</td>
</tr>
<tr>
<td>查询结果<br>
<selectname="searchobj"size="10">
<%dowhilenotrs.eof%>
<optionvalue="<%=rs("employeeid")%>"><%=rs("lastname")%></option>
<%rs.movenext
loop
%>
</select>
<selectname="searchsource"size="10"style="display:none">
<%
rs.movefirst
dowhilenotrs.eof%>
<optionvalue="<%=rs("employeeid")%>"><%=rs("lastname")%></option>
<%rs.movenext
loop
%>
</select>
</td>
</tr>
</table>
<%rs.close
setrs=nothing
%>
</body>
</html>
()
- · 轻松实现将上传图片到数据库
- · ASP代码的对象化
- · 教你一次下载网页中的所有资源
- · 温故知新:几个经典的ASP应用
- · 利用xslt对xml进行缩进格式化处理
- · asp论坛在线人数统计研究
- · 教你使用 ASP.NET 加密口令
- · IIS6.0下ASP的新增功能(五)
- · IIS6.0下ASP的新增功能(四)
- · IIS6.0下ASP的新增功能(三)
- · IIS6.0下ASP的新增功能(二)
- · IIS6.0下ASP的新增功能(一)
- · 对于SSH crc32 compensation attack detector exploit 的分析
- · 非安全编程演示之格式化字符串篇
- · CGI 安全问题
- · SQL Server补丁版本的检查和安装过程中常见问题
- · 使用组件来保护你的ASP代码
- · 通过对php一些服务器端特性的配置加强php的安全
- · Javascript 编写的文字放大效果
- · XHTML 1.0:标记新的开端
- · JavaScript[对象.属性]集锦
- · 使用JavaScript访问XML数据
- · 关于Access数据库是否被下载的问题
- · 通过对php一些服务器端特性的配置加强php的安全
- · XSL简明教程
- · CCTV视频里的全屏播放功能实现
- · JS 小游戏
- · 检测屏幕的分辨率
- · 使用 ASP.NET 加密口令
- · CGI的安全
- · javascript 时间脚本收集
- · HTML 表格特效整理
- · Javascirpt打造“互动指针”特效
- · 用层模拟下拉列表框
- · JS 中对象equals方法的实现
- · 教您去掉 DW2004 中表格辅助线
- · Javascript浅拷贝与深拷贝实现
- · showModelessDialog()使用详解
