回 帖 发 新 帖 刷新版面

主题:[原创]利用XMLHTTP无刷新自动实时更新数据.

在网上看到一个利用XMLHTTP无刷新自动实时更新数据代码,自己操作了一下,碰到了一个问题,数据读取出来是一行的,能否将数据变成两行。图颜色框里面的是数据库读取出来的,如何变成下面图形样式http://www.ys24k.com/ooo/web
index.htm
<script language="javascript">
function GetResult()
{
/*
 *--------------- GetResult() -----------------
 * GetResult() 
 * 功能:通过XMLHTTP发送请求,返回结果.
 * 参数:str,字符串,发送条件.
 * 实例:GetResult();
 *--------------- GetResult() -----------------
 */
    var oBao = new ActiveXObject("Microsoft.XMLHTTP");
    //特殊字符:+,%,&,=,?等的传输解决办法.字符串先用escape编码的.
    //Update:2004-6-1 12:22
    oBao.open("POST","Server.ASP",false);
    oBao.send();
    //服务器端处理返回的是经过escape编码的字符串.
    var strResult = unescape(oBao.responseText);
    //将字符串分开.
    var arrResult = strResult.split("###");
    
    RemoveRow(); //删除以前的数据.
    //将取得的字符串分开,并写入表格中.
    for(var i=0;i<arrResult.length;i++)
    {
        arrTmp = arrResult[i].split("@@@");
        s = arrTmp[0]; //字段卖出的值
        b = arrTmp[1]; //字段买入的值
        g = arrTmp[2]; //字段最高价的值
        d = arrTmp[3]; //字段最低价的值
        
        rowa = tb.insertRow();
        
        cella1 = rowa.insertCell();
        cella1.bgColor="#F2F2F2";
        cella1.innerText = s;
        cella2 = rowa.insertCell();
        cella2.bgColor="#F2F2F2";
        cella2.innerText = b;
        cella3 = rowa.insertCell();
        cella3.bgColor="#F2F2F2";
        cella3.innerText = g;
        cella4 = rowa.insertCell();
        cella4.bgColor="#F2F2F2";
        cella4.innerText = d;

    }

}
function RemoveRow()
{
    //保留第一行表头,其余数据均删除.
    var iRows = tb.rows.length;
    for(var i=0;i<iRows-1;i++)
    {
        tb.deleteRow(1);
    }

}
function MyShow()
{
    //2秒自动刷新一次,2秒取得一次数据.
    timer = window.setInterval("GetResult()",1000);
}

</script>


server.asp
<% @Language="JavaScript" %>
<%
function OpenDB(sdbname)
{

    var connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(sdbname);
    var conn = Server.CreateObject("ADODB.Connection");
    conn.Open(connstr);
    return conn;
}
var sResult = new Array();
var oConn = OpenDB("data.mdb");

var sql = "select s,b,g,d from nums order by id";
var rs = oConn.Execute(sql);

{

          //一条记录用"###"隔开.每列数据用"@@@"隔开.   这是以只有两个列数据的情况.   
    sResult[sResult.length] = rs("s").Value + "@@@" + rs("b").Value + "@@@" + rs("g").Value + "@@@" + rs("d").Value
   
}
Response.Write(escape(sResult.join("###")));
%>

[url=http://www.ys24k.com/ooo/web]http://www.ys24k.com/ooo/web[/url]

回复列表 (共1个回复)

沙发

希望大家发表自己的看法!我先赞成一下

我来回复

您尚未登录,请登录后再回复。点此登录或注册