程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 不刷新頁面篩選數據庫中的數據

不刷新頁面篩選數據庫中的數據

編輯:ASP技巧

我在作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(){
   //得到篩選雇員的名字
   //www.knowsky.com
   searchtext=window.searchContent.value;
  
   //首先移除在所有查詢結果列表中的選項
   //www.knowsky.com
      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);
      }
     }
   }
   //www.knowsky.com
</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" >
        <%
'www.knowsky.com
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>


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved