通过ajax

时间:2017-03-17 23:02:10

标签: javascript jquery json ajax dropdown

遇到使用JQuery AJAX动态加载下拉列表的问题。 php正在返回一个有效的JSON响应。但是当我尝试加载数据时,我会回复未定义的,[对象对象]或单个选项,我的所有值都以逗号分隔。我没有尝试过任何可以得到正确答案的内容。

这是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 个答案:

答案 0 :(得分: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');
      });