是否有用于使用 JSON 数据填充下拉列表的标准 JQuery 工具?
Is there a standard JQuery tool for populating a droplist with JSON data?
我正在寻找类似于下拉列表的 dataTables 插件。通过整个上午寻找一个简单的例子,我知道有一百万种方法可以做到这一点,但我还没有找到像规范方法这样的方法。给定包含数据列表的 JSON,在 JQuery 中用它填充下拉列表的最简单方法是什么?
我们暂时假设此 json 数据来自通过 Spring MVC 控制器方法访问的数据库查询。但实际上,URL 提供的任何 JSON 列表都应该有效。
我已经解决了。首先,Json 和你想象的一样基本:
{"status":"OK",
"statusDescription":"2 rows returned",
"payload":{
"transcribers":[
{"userId":2,"userName":"jfrost"},
{"userId":1,"userName":"sjones"}
]
}
}
解决方案none太难了,直到我理解了这个问题,直到那时才头疼。
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,等等。因此所有数据都在值元素中。
无论如何,我希望这对下一个必须解决此 "simple" 问题的人有用。
我正在寻找类似于下拉列表的 dataTables 插件。通过整个上午寻找一个简单的例子,我知道有一百万种方法可以做到这一点,但我还没有找到像规范方法这样的方法。给定包含数据列表的 JSON,在 JQuery 中用它填充下拉列表的最简单方法是什么?
我们暂时假设此 json 数据来自通过 Spring MVC 控制器方法访问的数据库查询。但实际上,URL 提供的任何 JSON 列表都应该有效。
我已经解决了。首先,Json 和你想象的一样基本:
{"status":"OK",
"statusDescription":"2 rows returned",
"payload":{
"transcribers":[
{"userId":2,"userName":"jfrost"},
{"userId":1,"userName":"sjones"}
]
}
}
解决方案none太难了,直到我理解了这个问题,直到那时才头疼。
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,等等。因此所有数据都在值元素中。
无论如何,我希望这对下一个必须解决此 "simple" 问题的人有用。