2017-03-17 61 views
0

遇到使用JQuery AJAX動態加載下拉列表的問題。 php正在返回一個有效的JSON響應。但是,當我嘗試加載數據時,我回頭或者未定義,[對象對象]或單個選項與我的所有值逗號分隔。我試過的東西沒有得到正確的答案。通過ajax發佈將數據加載到下拉列表中

這是AJAX代碼塊:

$.ajax({ 
    type: "GET", 
    url:"data/getdata_codes.php", 
    dataType: "json", 
    success: function (data) { 
     alert("Success section"); 
     alert(data); 
     $.each(data,function(key,value) <--Fails here 
     { 
     alert(key); 
     alert(value); 
     var option="<option value="+key+">"+value+"</option>"; 
     alert(option); 
     $(option).appendTo('#myList'); 
     }); 
}, 
error: function(xhr) { 
    alert("An error occured: "+ xhr.status + " " + xhr.statusText); 
} 

});

這是從PHP返回的JSON,它進行驗證。

{"data":[[{"0":"-1","CODE":"-1"}], 
[{"0":"0","CODE":"0"}], 
[{"0":"12","CODE":"12"}], 
[{"0":"213","CODE":"213"}], 
[{"0":"357","CODE":"357"}], 
[{"0":"364","CODE":"364"}], 
[{"0":"501","CODE":"501"}], 
[{"0":"661","CODE":"661"}]]} 

回答

0

首先,你的數組充滿了1個對象的數組。這使得它過於複雜。

嘗試這樣:

$(data.data).each(function(index, element) <- I guess your data variable also has a data attribute? 
     { 
     var array = element; 
     var objectInArray = array[0]; 

     var key = objectInArray.0; 
     var value = objectInArray.CODE; 
     alert(key); 
     alert(value); 
     var option="<option value="+key+">"+value+"</option>"; 
     alert(option); 
     $(option).appendTo('#myList'); 
     }); 
相關問題