我在作asp程序時經常遇到這種情況將數據庫中的數據(如所有雇員名)列在列表框中程序要求進行選擇其中一項或多項提交到下一個頁面
但麻煩的是如果數據(如雇員)過多會給客戶的選擇帶來麻煩——要從很長的列表中進行數據定位最好的解決方法是用戶在選擇前采用模糊查詢的方式進行數據定位准確找出需要選擇的雇員名再選擇提交
問題出現在我們程序員面前如何不刷新頁面篩選從數據庫中篩選數據本人的方法有兩種采用雙列表框的方法采用XML方法本文主要介紹第一種方法采用雙列表框的方法編程思想采用雙列表框其中一個為隱藏狀態另一個是顯示給用戶看的列表框
程序開始將數據(如雇員姓名)分別裝進兩個列表框中當用戶需要篩選雇員時首先將顯示列表框清空再更據篩選條件將數據從隱藏列表框裝入顯示列表框中
這樣即可實現不刷新頁面篩選數據庫中的內容
實現下面以SQLSERVER為例篩選NorthWind庫中Employees表的雇員名進行說明
<html>
<head>
<title>不刷新頁面查詢的方法</title>
<metahttpequiv=ContentTypecontent=text/html;charset=gb>
</head>
<scriptlanguage=javascript>
functionsearch_onclick(){
//得到篩選雇員的名字
searchtext=windowsearchContentvalue;
//首先移除在所有查詢結果列表中的選項
j=searchObjlength;
for(i=j;i>=;i)
{
searchObjremove(i);
}
if(searchtext!=){
//顯示符合篩選條件的雇員
j=searchSourcelength;
for(i=;i<j;i++){
searchsource=searchSourceoptions(i)text;
k=searchsourceindexOf(searchtext);
if(k!=){
option=documentcreateElement(option);
optiontext=searchsource;
optionvalue=searchSourceoptions(i)value;
searchObjadd(option);
}
}
}
else{
//如果沒有輸入查詢條件則顯示所有雇員
j=searchSourcelength;
for(i=;i<j;i++){
searchsource=searchSourceoptions(i)text;
option=documentcreateElement(option);
optiontext=searchsource;
optionvalue=searchSourceoptions(i)value;
searchObjadd(option);
}
}
}
</script>
<bodybgcolor=#FFFFFFtext=#>
<%
servername=wyb服務器名
user=sa用戶名
pw=用戶密碼
databasename=northwind數據庫名
setconn=serverCreateObject(nnection)
conn
Open
DRIVER=SQLServer;SERVER=
&servername&
;UID=
&user&
;pwd=
&pw&
;DATABASE=
& databasename
setrs=server
CreateObject(
adodb
recordset
)
sql=
Selectemployeeid
lastnamefromemployeesorderbyemployeeid
rs
Opensql
conn%>
<tablewidth=
%
border=
>
<tr>
<td>
<inputtype=
text
name=
searchContent
>
<inputtype=
button
name=
Button
value=
查 詢
onclick=
javascript:returnsearch_onclick()
>
</td>
</tr>
<tr>
<td>查詢結果<br>
<selectname=
searchObj
size=
>
<%dowhilenotrs
eof%>
<optionvalue=
<%=rs(
employeeid
)%>
><%=rs(
lastname
)%></option>
<%rs
movenext
loop
%>
</select>
<selectname=
searchSource
size=
>
<%
rs
movefirst
dowhilenotrs
eof%>
<optionvalue=
<%=rs(
employeeid
)%>
><%=rs(
lastname
)%></option>
<%rs
movenext
loop
%>
</select>
</td>
</tr>
</table>
<%rs
close
setrs=nothing
%>
</body>
</html>
From:http://tw.wingwit.com/Article/program/net/201311/11991.html