2016-12-01 15 views
0

如何將內部forloop的數據附加到outerfor循環的數據以在前端生成下拉列表。如何將內部for循環的數據附加到外部for循環的數據以在前端生成下拉列表

我試過了,但我只能生成數據列表,但dono如何將innerforloop的數據附加到每個外部forloop,因此每個外部forloop的onclick我需要生成下拉列表,其中應包含外部forloop的詳細信息。

以下是代碼。

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Insert title here</title> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<script> 
function myData1(){ 
    var appname; 
    var hostid; 
    $.ajax({ 
     url:"http://localhost:8080/ZabbixRestApi/webapi/users/host", 
     datatype:"json", 
     type:"GET", 
     success: function(Data){ 
       for(i=0;i<Data.length;i++){ 
         $("#messages").append("<option value=\""+Data[i].hostid+"\">"+Data[i].host+"</option>"); 
         hostid=Data[i].hostid; 
        change4(hostid,function(data) 
        { 
         for(i=0;i<data.length;i++) 
         { 
          $("#dropdown").append("<option value=\""+data[i].applicationid+"\">"+data[i].name+"</option>"); 
         } 
         }); 
        for(i=0;i<appname.length;i++) 
         { 
        ("#appname").append("<option value=\""+appname[i].hostid+"\">"+appname[i].name+"</option>"); 
         } 
        } 
        }, 
    error: function(){ 
       alert("failure"); 
     } 
    }); 

} 
function change4(hostid,callback){ 

    $.ajax({ 
     url:"http://localhost:8080/ZabbixRestApi/webapi/users/appiget/"+hostid, 
     datatype:"json", 
     type:"GET", 
     success: function(data) 
      { 
      callback(data); 
      }, 
     error: function(){ 
       alert("failure"); 
     } 
    }); 
    } 

</script> 
</head> 
<body onload = "myData1()"> 

<select id="messages"> 
    <option>Host Name</option> 
    </select> 

<div id="dropdown"> 
</body> 
</html> 
+0

...這是什麼問題?這個問題中使用的語言很難理解。 –

+0

嗨,我想生成一個下拉列表..that數據來自內循環需要連接到外循環。 –

+0

我從兩個循環中獲取數據。但卡在使用javascript生成下拉菜單 –

回答

0

使用Closure

Inner function記住其所創建的環境!

for (var i = 0; i < Data.length; i++) { 
    $("#messages").append("<option value=\"" + Data[i].hostid + "\">" + Data[i].host + "</option>"); 
    var hostid = Data[i].hostid; 
    (function(hostid) { 
    change4(hostid, function(data) { 
     console.log(hostid); 
     for (i = 0; i < data.length; i++) { 
     $("#dropdown").append("<option value=\"" + data[i].applicationid + "\">" + data[i].name + "</option>"); 
     } 
    }); 
    for (i = 0; i < appname.length; i++) { 
     ("#appname").append("<option value=\"" + appname[i].hostid + "\">" + appname[i].name + "</option>"); 
    } 
    })(hostid); 
} 
+0

嗨,我想生成一個下拉列表..that是來自內部for循環的數據需要連接到外部for循環。 –

+0

我從兩個循環中獲取數據。但堅持使用JavaScript生成下拉菜單 - –