Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > 网页制作 > xmlhttp远程异步调数据一例(含中文乱码解决方法)
【标  题】:xmlhttp远程异步调数据一例(含中文乱码解决方法)
【关键字】:xmlhttp
【来  源】:http://blog.csdn.net/precipitant/archive/2006/07/27/985611.aspx

xmlhttp远程异步调数据一例(含中文乱码解决方法)

Your Ad Here

利用xmlhttp远程异步调用数据的方式真的能使web程序可以完全模拟c/s程序的特点。大大提高了web程序的 实现效果。尤其是以xmlhttp技术为核心的 ajax ,将是web程序的一次飞跃。本文将讨论一个刚刚用到的一个实例。

程序的功能是 在 录入及面有一个文本框 ,我们输入一个设备编码,然后双击 就会将该设备的详细信息显示出来。

程序分两个部分:客户端  和  服务器

 

一、客户端

<SCRIPT language="VBScript">
'利用AJAX技术异步从数据库取数据
dim oReq
set oReq = CreateObject("MSXML2.XMLHTTP")     '创建MSXML2.XMLHTTP对象

sub callDetail(a_code)
    '打开请求
 oReq.open "get","assets_pc_query_detail.asp?assets_code=" & a_code,true
    '设置请求头,
 oReq.setRequestHeader "Content-Length",Len(strA)
 oReq.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
    '调用javascript函数以定义 onreadystatechange 事件触发 操作
 setEvent
    '发送请求
 oReq.send()
   'msgbox bytes2BSTR(oReq.responseBody)
end sub

'这个函数没用上,它是用来包装请求信息的
Function URLEncoding(vstrIn)
  strReturn = ""
  For i = 1 To Len(vstrIn)
    ThisChr = Mid(vStrIn,i,1)
    If Abs(Asc(ThisChr)) < &HFF Then
      strReturn = strReturn & ThisChr
    Else
      innerCode = Asc(ThisChr)
      If innerCode < 0 Then
        innerCode = innerCode + &H10000
      End If
      Hight8 = (innerCode And &HFF00)\ &HFF
      Low8 = innerCode And &HFF
      strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
    End If
  Next
  URLEncoding = strReturn
End Function

'非常重要,对服务器的响应信息进行处理,否则汉字乱码
Function bytes2BSTR(vIn)
  strReturn = ""
  For i = 1 To LenB(vIn)
    ThisCharCode = AscB(MidB(vIn,i,1))
    If ThisCharCode < &H80 Then
      strReturn = strReturn & Chr(ThisCharCode)
    Else
      NextCharCode = AscB(MidB(vIn,i+1,1))
      strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
      i = i + 1
    End If
  Next
  bytes2BSTR = strReturn
End Function

</script>

<script language="javascript">
    //此函数定义当获得相应信息后将做什么操作
     // 将得到的信息 放到一个 span 中,并呈现给用户
    function setEvent()
    {
       oReq.onreadystatechange=function(){
          if(oReq.readystate==4)
             {
                if(oReq.status==200)
                {
                   assets_detail.innerHTML= bytes2BSTR(oReq.responseBody);
                   assets_detail.style.left=200;
                   assets_detail.style.top=100;
                   assets_detail.style.visibility='visible';
                }
             }
       }
    }
   
</script>
<input ondblclick="callDetail(this.value)" onchange="anyChange();" style='width:95%' type="text" maxlength="50"  name="assets_code" value="" ID="Text1">
<span id="assets_detail" onclick="this.style.visibility='hidden';" style="background-color:#e0e0e0;visibility:hidden;position:absolute;top:100;left:100"></span>   

二、服务器

assets_pc_query_detail.asp

<%Response.Expires = -1%>
<!--#include file="../inc/conn2.asp"-->
<!--#include file="../inc/config.asp"-->
<%
'计算机设备查询详细(车间级)
'writer:northsnow
'create date  :060614
%>
<%     
    assets_code=trim(request("assets_code"))
    if assets_code="" then response.Write "nononono"
%> 
     <%
            '读取数据
      set rs=server.CreateObject("adodb.recordset")
      rs.CursorLocation=3
      Call OpenConn()
      set rs=server.CreateObject("adodb.recordset")
      rs.open "select * from assets_pc_detail_v  where assets_code='" & assets_code & "'",conn,3,1
     if not (rs.eof and rs.bof) then
     %>
             设备编码:<%=FilterParam3(rs("assets_code"))%> <br>
                               设备名称:<%=FilterParam3(rs("assets_name"))%> <br>
                               设备型号:<%=FilterParam3(rs("assets_spec"))%> <br>
             购买日期:<%=FilterParam3(rs("purchase_date"))%> <br>
                               cpu:<%=FilterParam3(rs("cpu_brand"))%>&nbsp;<%=FilterParam3(rs("assets_cpu"))%> <br>
                               内存:<%=FilterParam3(rs("assets_ram"))%> <br>
                               硬盘:<%=FilterParam3(rs("assets_hd"))%> <br>
             品牌:<%=FilterParam3(rs("assets_brand"))%> <br>
                               IP:<%=FilterParam3(rs("assets_ip"))%> <br>
                               技术状态:<%=FilterParam3(rs("tech_status"))%>
    <% end if
    Rs.Close()
    set rs=nothing
    CALL CLOSECONN()%>
 

 

台湾教育家高震东先生的演讲稿:【上一篇】
JSTL(JSP标准标签库)介绍:【下一篇】
【相关文章】
  • 《实战AJAX》中重构的xmlhttpRequest调用的使用方法
  • 用XMLHTTP和WEB资源交换数据(二)(kagad-原创)
  • 用XMLHTTP和WEB资源交换数据(一)
  • xmlhttp中文参考(www.xmlhttp.cn)
  • 建一个XMLHttpRequest对象池
  • 利用XMLHTTP实现无刷新二级联动Select
  • XMLHTTP小偷程序原理
  • Ajax & XMLHttpRequset
  • onreadystatechange 事件获取XMLHTTP请求的当前状态
  • Ajax核心:XMLHTTP组件相关技术资料
  • 【随机文章】
  • 替代文件域的最佳解决方案
  • typedef问题
  • WMI问题答案集锦
  • 红旗Desktop 5 Beta 12月8日提供下载
  • ubuntu文件管理器(Nautilus)自定义浏览方式
  • 文件特殊权限的解释
  • 配置Java和Eclipse环境
  • ADSL调制技术
  • 群星COM+中corePack部分的源码
  • NBear - 使用Entity Configurator设置实体元数据、生成数据库创建脚本
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.