本帖最后由 therainycity 于 2009-10-14 10:40:34 编辑

解决方案 »

  1.   

    这样看看function loadfilept(GameFileId) 

        document.getElementById("addgamestate").innerHTML = "正在读取游戏文件(ID:" + GameFileId + ")已选机型..."; 
        document.getElementById("addgamestate").style.display = "block"; 
        
        var xmlObj = createXmlObj(); 
        var strGet = "GameFileId=" + GameFileId; 
        xmlObj.open("POST", "AjaxGame.aspx?action=loadfilept", true); 
        xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
        xmlObj.Send(strGet); 
        
        if(xmlObj.readyState == 4) 
        { 
            var str = xmlObj.responseText; 
            if (str.length > 0) 
            { 
                var PhoneTypeId = str.split("|||"); 
                
                var objs = document.getElementsByName("ptid"); 
                for(var i = 0; i < objs.length; i++) 
                { 
                    objs[i].checked = false; 
                    for (var j = 0; j < PhoneTypeId.length; j++) 
                    { 
                        if (objs[i].value == PhoneTypeId[j]) 
                        { 
                            objs[i].checked = true; 
                        } 
                    } 
                } 
                document.getElementById("addgamestate").innerHTML = "读取游戏文件(ID:" + GameFileId + ")已选机型成功!"; 
            } 
            else 
            { 
                alert("修改游戏手机型号关系错误!"); 
            } 
        } 

      

  2.   

    ls的应该是正解,也可以到readyState==1里面写正在读取,当然还是要修改ajax是否异步lz因为你那是同步的ajax,所以只有当一运行完以后才会有显示给用户,而此时下面已经显示读取文件 了
    所以只改为true就行了
      

  3.   

    这段代码只看见了xmlobj的创建 其中并没有看见设置回调函数 xmlObj.onreadystatechange lz做的事情是设置完xmlObj后直接运行下面的代码 结果就肯定不对了 异步的概念不清 
      

  4.   

    果真是的,这样的话,估计上面修改的还是不行function loadfilept(GameFileId) 

        document.getElementById("addgamestate").innerHTML = "正在读取游戏文件(ID:" + GameFileId + ")已选机型..."; 
        document.getElementById("addgamestate").style.display = "block"; 
        
        var xmlObj = createXmlObj(); 
        var strGet = "GameFileId=" + GameFileId; 
        xmlObj.onreadystatechange=function() {
    if(xmlObj.readyState == 4) 

    var str = xmlObj.responseText; 
    if (str.length > 0) 

    var PhoneTypeId = str.split("|||"); 

    var objs = document.getElementsByName("ptid"); 
    for(var i = 0; i < objs.length; i++) 

    objs[i].checked = false; 
    for (var j = 0; j < PhoneTypeId.length; j++) 

    if (objs[i].value == PhoneTypeId[j]) 

    objs[i].checked = true; 



    document.getElementById("addgamestate").innerHTML = "读取游戏文件(ID:" + GameFileId + ")已选机型成功!"; 

    else 

    alert("修改游戏手机型号关系错误!"); 


        }
        xmlObj.open("POST", "AjaxGame.aspx?action=loadfilept", true); 
        xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
        xmlObj.Send(strGet);