我正在用烧瓶做一个小项目。现在,我试图从JSON对象添加选项。虽然能够插入选项,但我无法访问它们的值
这是我的烧瓶代码:
for dealership in session.query(Dealership).filter_by(ownerID = userId).all():
dealership_list.append({'Name' : dealership.name})
return jsonify(names = dealership_list)
Ajax代码:
success:function(result){
$.each(result.names, function(Name, value) {
$('#dealerships').append($("<option/>", {
value: Name,
text: value
}));
});
},
答案 0 :(得分:1)
Func<Task>
中的每个项目都是经销商(由您的视图功能定义)。
每个经销商都是由result.names
所以{"Name":the_name_of_this_dealership}
应该打印每个$.each(result.names,function(data){console.log(data)}
所以只需将其更改为
{"Name":some_dealership_name}
更好的是,只需更改您的python代码,只返回一个名称列表,因为这是您使用的唯一数据
success:function(result){
$.each(result.names, function(dealership) {
$('#dealerships').append($("<option/>", {
value: dealership.Name,
text: dealership.Name
}));
});
},
只需将你的js改为
dealerships = session.query(Dealership).filter_by(ownerID = userId).all()
names = [dealership.name for dealership in dealerships]
return jsonify(names = names)
答案 1 :(得分:1)
@JoranBeasley太棒了!我使用了第二个解决方案,但添加/更改了以下内容:
$.each(result.names, function(key,name) {
$('#dealerships').append($("<option/>", {
value: name,
text: name
}));
});
这是因为您的解决方案是打印索引而不是值。谢谢您的帮助!