通过ajax发布将数据加载到下拉列表中
问题描述:
遇到使用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"}]]}
答
首先,你的数组充满了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');
});