+ -
当前位置:首页 → 问答吧 → 如何实现多点的ajax写入?

如何实现多点的ajax写入?

时间:2011-05-07

来源:互联网

有一个表格,计划按一个按钮,然后把每行写入一个值。

现在运行没问题,但他只能显示最后一行的结果。 是不是应该在for循环那里判定下是否执行完毕呢? 或者如何实现?
JScript code

function DisplayPass()
{
        //获取表并取得表的行数
    var signFrame = findObj("stocktable",document); 
    var row =  signFrame.rows.length - 1;

    for (var i=1; i<row+1 ; i++ )
    {
        var id = "chr" + i;
        var chrid = document.getElementById(id).value;
        
        var display = "pass" + i;

        var url = "../include/stock.php";
        url=url+"?chrid="+chrid;
        
        
        xmlHttp.onreadystatechange = function() {stateChangednew(display, xmlHttp);}
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
        
                //是否在这里可以判定是否执行完毕?
        
    }
}

function stateChangednew(display, xmlHttp)
{
    if (xmlHttp.readyState==4)
    {
        document.getElementById(display).innerHTML=xmlHttp.responseText;
    }
}

function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
    {
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

作者: jiangjunguo2   发布时间: 2011-05-07

改为同步
JScript code
for (var i=1; i<row+1 ; i++ )
    {
        var id = "chr" + i;
        var chrid = document.getElementById(id).value;
        
        var display = "pass" + i;

        var url = "../include/stock.php";
        url=url+"?chrid="+chrid;
        
        //同步不需要状态转换函数
        //xmlHttp.onreadystatechange = function() {stateChangednew(display, xmlHttp);}
        xmlHttp.open("GET",url,false);////
        xmlHttp.send(null);
        stateChangednew(display, xmlHttp);//直接执行
        
                //是否在这里可以判定是否执行完毕?
        
    }

作者: showbo   发布时间: 2011-05-08

热门下载

更多