2016-12-01 11 views
0

outerforループのデータに内部forloopのデータを添付してフロントエンドにドロップダウンリストを生成する方法。inside forループのデータをouter forループのデータに付加してフロントエンドにドロップダウンリストを生成する方法

私は試みましたが、私はデータのリストだけを生成することができましたが、それぞれの外側のforloopにinnerforloopのデータを添付する方法を考えました。したがって、各外側の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

こんにちは、私はドロップダウンリストを生成したいです。内側のループから来るデータは、外側のforループに接続する必要があります。 –

+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

こんにちは、私はドロップダウンリストを生成したい。内側のループから来るデータは外側のループに接続する必要があります。 –

+0

両方のループからデータを取得しています。 javascriptを使用してドロップダウンを生成するには固執しました - –

関連する問題