我正在为droplists寻找类似dataTables插件的东西。我知道从早上看一个简单的例子,有一百万种方法可以做到这一点,但我没有发现任何类似规范的方法。鉴于JSON包含一个数据列表,在JQuery中,用它填充一个droplist是最简单的方法吗?
我们暂时假设这个json数据来自通过Spring MVC控制器方法访问的数据库查询。但实际上,URL提供的任何JSON列表都应该有效。
答案 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;问题。