用json填充下拉列表

时间:2011-06-30 09:35:14

标签: javascript jquery json

我有带有列id和名称的SQLite表。我从autocomplete.php页面返回像json这样的行的数组。如何使用jquery和JavaScript使用此json填充选项(下拉列表)?我是JavaScript和JQuery的新手,我用谷歌搜索但没有找到。在ASP.NET中这很容易,但在这里我不知道。有人会帮忙吗?

这是我的JSON的例子,可以更长。

[
    {
        "id": "1",
        "name": "test"
    },
    {
        "id": "1",
        "name": "test"
    }
]

3 个答案:

答案 0 :(得分:12)

HTML:

<select id="sel">

</select>

JavaScript的:

$(function() {
    var data = [
        {
        "id": "1",
        "name": "test1"},
    {
        "id": "2",
        "name": "test2"}
    ];
    $.each(data, function(i, option) {
        $('#sel').append($('<option/>').attr("value", option.id).text(option.name));
    });
})

这是一个有效的例子。 http://jsfiddle.net/ms2Ma/

答案 1 :(得分:3)

试试这个,这将为您提供一个选项,可以使用任意数量的下拉框和JSON节点来配置下拉框。

您需要执行以下几个步骤:

  • 创建一个下拉框数组(例如,如果你必须配置手机,那么你应该使用颜色,内存等下拉列表。)
  • 创建在代码中创建的JSON对象。不要更改以&#34; level1&#34;开头的可配置项目名称。并以任意数量的节点结束,因为它必须首先与您正在创建的数组项目的索引同步。

以下是数据:

var Dropdowns = ["Model", "Color", "Memory","design","covers","music"];
var Data ={"phones":[
  {
     "oid":":000000F0:00000458:",
     "level1":"3G",
     "level2":"white",
     "level3":"16GB",
     "level4":"slim",
     "level5":"Back cover",
     "level6":"headphone",
     "price":"£568.63",
     "addToCart":"#Cart1"
  },
  {
     "oid":":000000F0:000003DA:",
     "level1":"3G",
     "level2":"black",
     "level3":"16GB",
     "level4":"slim",
     "level5":"Flip cover",
     "level6":"headphone",
     "price":"£615.79",
     "addToCart":"#Cart7"
  }]};

请在此处查看完整的工作代码: https://jsfiddle.net/raju_sumit/681ppgq0/5/

答案 2 :(得分:0)

尝试一下:)

Javascript:

$.getJSON("/array.json",
  function (json) {
      $.each(json,
      function (key, value) {
      $("#id-select").append("<option value='" + value.c + "'>" + value.d + "</option>");
      });
});