程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 在不刷新頁面的情況下調用遠程asp腳本

在不刷新頁面的情況下調用遠程asp腳本

編輯:關於ASP編程
1.請在sql server 中建一數據庫 name:house 在house中運行下列腳本

if exists (select * from sysobjects where id = object_id(N´[dbo].[City]´) and OBJECTPROPERTY(id, N´IsUserTable´) = 1)
drop table [dbo].[City]
GO

if exists (select * from sysobjects where id = object_id(N´[dbo].[Area]´) and OBJECTPROPERTY(id, N´IsUserTable´) = 1)
drop table [dbo].[Area]
GO

CREATE TABLE [dbo].[City] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [name] [nvarchar] (10) NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Area] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [CityId] [int] NULL ,
    [name] [nvarchar] (20) NULL 
) ON [PRIMARY]
GO

INSERT INTO City (id,name) Values(1,"廣州")
INSERT INTO City (id,name) Values(2,"上海")
INSERT INTO City (id,name) Values(3,"北京")

INSERT INTO Area (id,CityId,name) Values(1,1,"天河")
INSERT INTO Area (id,CityId,name) Values(2,1,"白雲")
INSERT INTO Area (id,CityId,name) Values(3,2,"虹口")
INSERT INTO Area (id,CityId,name) Values(4,2,"寶山")
INSERT INTO Area (id,CityId,name) Values(5,2,"靜安")
INSERT INTO Area (id,CityId,name) Values(6,3,"海澱")
INSERT INTO Area (id,CityId,name) Values(7,3,"朝陽")

2.建立文件

建立文件CityData.asp
<%@ LANGUAGE=VBSCRIPT %>
<% RSDispatch %>

<SCRIPT RUNAT=SERVER Language=javascript>
<!--#INCLUDE VIRTUAL="/_ScriptLibrary/RS.ASP"-->
<!--#INCLUDE VIRTUAL="/jsconn.asp"-->

    function Description()
    { 
          this.GetAreaAsArray = DoGetData;
    }
    public_description = new Description();


    function DoGetData(cityId)
    {
      var sql,rst,strText,conn,i,j
            conn = new ActiveXObject("ADODB.Connection");
            conn.ConnectionString = connstr;
            conn.ConnectionTimeout = 30;
            conn.Open();
            sql  = "Select name,id from area where cityid=´" + cityId + "´";
            rst  = new ActiveXObject("ADODB.Recordset");
            rst.CursorLocation = 3;    

            rst.Open(sql,conn);
            i = 0;
            j = 0;
        strText = new Array();

            if (rst.RecordCount >= 1)
            {
              for(var i=0;i<rst.RecordCount;++i)
              {
              strText[j++] = rst.Fields("name").Value;
              strText[j++] = rst.Fields("id").Value;
              rst.movenext();
                }
              }
              else
            {
              strText[j++] = "沒有";
              strText[j++] = 1;
              }
            rst.close();
            conn.close();
            return strText;
        }
</SCRIPT>

建立文件jsconn.asp

<SCRIPT RUNAT=SERVER Language=javascript>
var connstr = "driver={SQL Server}; server=202.0.0.108;uid=sa;pwd=;database=house";
</SCRIPT>

建立文件pub.asp
<%

  Function OpenOrGet_Database
    Dim SessionName, conn
    const connstr = "driver={SQL Server}; server=202.0.0.108;uid=sa;pwd=;database=house"
    SessionName = "House"
    If Not IsObject(Session(SessionName)) Then
      Set conn = Server.CreateObject("ADODB.Connection")
      conn.Open connstr
      Set Session(SessionName) = conn
    End If
    Set OpenOrGet_Database = Session(SessionName)
  End Function



%>

建立文件sql_pub.asp
<%


  ´取出城市資料  
  Function SelectCity()
    Dim Conn, Sql, Rs, ArrCity, TmpArr(1,0)
    Set Conn = OpenOrGet_Database
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Sql = "Select distinct name,id from City"
    Rs.Open Sql,Conn,3 
    if Rs.Eof then
      TmpArr(0,0) = "城市"
      TmpArr(1,0) = 0
      Rs.Close
      SelectCity = TmpArr
    else
      ArrCity = RS.GetRows()
      Rs.Close  
      SelectCity = ArrCity
    end if    
  End Function

  ´根據傳來的CityId取出相應的地區資料
  Function SelectArea(CityId)
    Dim Conn, Sql, Rs, ArrArea, TmpArr(1,0)
    Set Conn = OpenOrGet_Database
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Sql    =" Select name,id from Area where CityId=" & CityId & " order by id " 
    Rs.Open Sql,Conn,3
    if Rs.Eof then
      TmpArr(0,0) = "地區"
      TmpArr(1,0) = 0
      Rs.Close
      SelectArea = TmpArr
    else
      ArrArea = RS.GetRows()
      Rs.Close  
      SelectArea = ArrArea
    end if    
  End Function


%>

建立文件test.asp
<%@ LANGUAGE="VBSCRIPT" %>
<%option explicit%>
<!--#include VIRTUAL="pub.asp"-->
<!--#include VIRTUAL="Sql_pub.asp"-->
<%
  Dim arrCity, arrArea, strPathInfo, strServerName, strServerPort, i, TmpStr

  strPathInfo = Request.ServerVariables("PATH_INFO")
  strServerName = Request.ServerVariables("SERVER_NAME")
  strServerPort = Request.ServerVariables("SERVER_PORT")
  if len(strServerPort) = 0 then
    strServerPort = ""
  else
    strServerPort = ":" + strServerPort
  end if
  strPathInfo = "http://" & strServerName & strServerPort & ""

  arrCity = SelectCity()
  arrArea = SelectArea(arrCity(1,0))


%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="目錄類型" content="文本/html; 字符集=gb2312">
</head>
<script language="JavaScript" src="<%=strPathInfo%>/_ScriptLibrary/rs.htm"></script>
<script language="JavaScript">
  RSEnableRemoteScripting("<%=strPathInfo%>/_ScriptLibrary");
</script>

<body bgcolor="#FFFFFF">
<form method="post" name="select">
  <font color="#222200"> 
  <select name="City" size="1" onChange="JavaScript: Choosesection(this.form.Area,this.form.City)">
  <option value=0 selected>--選擇城市--</option>
  <%for i = LBound(arrCity,2) To UBound(arrCity,2)                                                    
                        TmpStr = "<option value=" & arrCity(1,i) & ""                                                    
                          TmpStr = TmpStr & ">" & arrCity(0,i) & "</option>"                                                    
                          Response.Write(TmpStr)                                                    
                      Next                                                    
                %> 
</select>
</font><font color="#222200">
<select name="Area" size=1>
  <option  value=0>--選擇鎮區--</option>
  <%For i = LBound(arrArea,2) To UBound(arrArea,2)
                          if arrArea(1,i)<>0 then
                      %> 
  <option value=<%=arrArea(1,i)%>><%=arrArea(0,i)%></option>
  <%  end if
                        Next%> 
</select>

</font> 
</form>
<script language="JavaScript">
var serverURL = "<%=strPathInfo%>";
var pageURL  = "/CityData.asp";
function Choosesection(oArea,oCity)
{
for(var i=oArea.options.length-1;i>0;--i)
{oArea.options.remove(i) }
var CityId = oCity.options(oCity.selectedIndex).value;
var objResult = RSExecute(serverURL+pageURL, "GetAreaAsArray", CityId);
var j=0
if (objResult.return_value.length>0)
  {
  for (var i=0; i<objResult.return_value.length/2;++i)
    {
      sName = objResult.return_value[j++];
      sId  = objResult.return_value[j++];
      var oOption = document.createElement(´OPTION´);
      oOption.text = sName;
      oOption.value = sId;
      oArea.options.add(oOption);
    }
  }

}

</script>
</body>
</html>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved