2017-08-02 69 views
0

還有一件事是,如果我在ajax代碼末尾使用alert(),代碼工作正常。這裏不管Ajax響應是否必須附加到現有表中。嘗試將ajax的響應存儲到全局變量中,但該值未在ajax代碼外部分配

for (var i = 1; i < rows.length; i++) { 
        var cells = splitCSVtoCells(rows[i], ","); 

        var obj = {}; 
        for (var j = 0; j < cells.length; j++) { 
         obj[first_Row_Cells[j]] = cells[j]; 
        } 
        jsonArray.push(obj); 
       } 
       console.log(jsonArray);for (var i = 0; i < jsonArray.length-1; i++) {           

        html += "<tr id=\"rowitem" + i + "\"><td id=\"rownum"+i+ "\" style=\"display:none;\">" + i + "</td><td> " + jsonArray[i].Clientgroup + " </td>"; 
        html += "<td>" + jsonArray[i].hostgroup + "</td>"; 
        html += "<td>" + jsonArray[i].server + "</td>"; 
        html += "<td>" + jsonArray[i].Group + "</td>"; 
        html += "<td>" + jsonArray[i].user + "</td>"; 
        html += "<td>" + jsonArray[i].ticket + "</td>"; 
        html += "<td>" + jsonArray[i].requesttype + "</td>"; 

       $.ajax({ 
         url : "BulkValidateServlet", 
         type : "POST", 
         data : {clientgroup: jsonArray[i].Clientgroup, hostgroup: jsonArray[i].hostgroup, server: jsonArray[i].server 
         },success : function(response){ 
          //alert("i in of ajax:"+i); 
          status = response;        
           if (status) { 
            //alert("outside if: " + status); 
            //$('<img src=\'images/check_mark.png\' height=\'20\' width=\'20\'/></td>').appendTo(tr); 
            html += "<td id=\"result"+ i + "\"><img src='images/check_mark.png' height='20' width='20'/></td>"; 
           } else { 
            //alert("outside else: " + status); 
            //$('<img src=\'images/cross_mark.png\' height=\'20\' width=\'20\'/></td>').appendTo(tr); 
            html += "<td id=\"result"+ i + "\"><img src='images/cross_mark.png' height='20' width='20'/></td>"; 
           } 
           console.log("Data: " + status); 
          // alert("Data: " + status); 
         //return status; 
         } 
         }); 

        console.log("outside: " + status); 

        alert(); 


         } 


    document.getElementById('tbodyLeads').innerHTML = html; 

        } 
+0

如果放上這行代碼,它會不會更容易:document.getElementById('tbodyLeads')。innerHTML = html;在可變的'html'正在填充的ajax成功函數中。你爲什麼想在ajax之外做? –

+0

程序不一定從上到下執行。您已成功將空值分配給'tbodyLeads.innerHTML',並且一旦ajax返回,您將使值非空,但不要將其分配到任何位置。 –

回答

0

你可以嘗試添加

async: false 

到你的Ajax特性。

請參閱此link