是否有一个标准的JQuery工具用于使用JSON数据填充下拉列表?

时间:2015-07-01 16:57:43

标签: jquery json datatables html-select

我正在为droplists寻找类似dataTables插件的东西。我知道从早上看一个简单的例子,有一百万种方法可以做到这一点,但我没有发现任何类似规范的方法。鉴于JSON包含一个数据列表,在JQuery中,用它填充一个droplist是最简单的方法吗?

我们暂时假设这个json数据来自通过Spring MVC控制器方法访问的数据库查询。但实际上,URL提供的任何JSON列表都应该有效。

1 个答案:

答案 0 :(得分:1)

我已经解决了。首先,Json和你想象的基本相同:

{"status":"OK",
 "statusDescription":"2 rows returned",
 "payload":{
   "transcribers":[
        {"userId":2,"userName":"jfrost"},
        {"userId":1,"userName":"sjones"}
   ]
  }
}

一旦我理解了这个问题,解决方案就不会太困难了,直到那时才成为头脑风暴。

function loadTranscriberDropdown() 
{
    var transcriberAPI = "oam/transcribers/";
    var count = 0;
    console.log('in loadTranscriberDropdown()');    

    $('#userlist').empty().append('<option value="0">...</option>');
    $.getJSON(transcriberAPI) 
        .done(function( data ) {
            $.each(data.payload.transcribers, function( ID, value ) {
                $('#userlist').append('<option value=' + value.userId + '>' + value.userName + '</option>');
                count = count + 1;
                console.log("loaded " + value.userName);
            });
        })
        .fail(function() {
            console.log( "  error loading transcribers. " );
        })
        .always(function() {
            console.log( count + " transcribers loaded.");
        });

}

令我困惑的是为什么$ .each行中的内联函数必须是function ( key, value )形式。显而易见的是,提供的JSON的每一行都是键值对的一部分。列表中的每个成员似乎都有某种隐含的键,它在列表中的顺序,第一行的键是1,第二行是2,等等。因此所有数据都在值元素中。

无论如何,我希望这对于必须解决这个问题的下一个人来说非常有用&#34;简单&#34;问题。