使用JSON数据填充select选项

时间:2016-07-04 07:54:59

标签: javascript php jquery arrays

我见过很多例子,我自己在很多程序中都使用过这个例子,但由于某些原因,我今天不想工作。

我有可以在console.log中显示的JSON数据,但我的select无效。我在控制台中收到此错误:

  

不能在'中使用'运营商搜索' 76'在{" hello1":" hello1"," hello2":" hello2"}

这是我的代码:

$.get("JSON.php?value=two", function(response) {
    console.log(response);
    // this is what my JSON returns 
    // {"hello1":"hello1","hello2":"hello2"}

    if (response != '') {
        $('#dropdown').find('option').remove(); 
        $.each(response,function(key, value){
            $('#dropdown').append('<option value=' + key + '>' + value + '</option>');
        });
    }
)};

3 个答案:

答案 0 :(得分:1)

我刚刚成功测试了这个

<html>
<head>
    <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script>
    $( document ).ready(function() {
        var response = {"hello1":"hello1","hello2":"hello2"} ;
        $('#dropdown').find('option').remove(); 
        $.each(response,function(key, value){
            $('#dropdown').append('<option value=' + key + '>' + value + '</option>');
        });
    });

    </script>
</head>
<body>
    <select id="dropdown"></select>
</body>
</html>

请检查。你会得到一些东西

答案 1 :(得分:0)

要实现此目标,您的响应应该是 Objects Array

[
  {
   hello1 : "hello1"
  },
  {
   hello2 : "hello2"
  }
]

答案 2 :(得分:0)

我找到了解决方案。我将我的数组转换为对象并且有效

$.get("JSON.php?value=two", function(response) {
console.log(response);
// this is what my JSON returns 
// {"hello1":"hello1","hello2":"hello2"}

if (response != '') {
    var response2 = JSON.parse(response);
    $('#dropdown').find('option').remove(); 
    $.each(response2,function(key, value){
        $('#dropdown').append('<option value=' + key + '>' + value + '</option>');
    });
}

)};