【发布时间】:2020-11-06 16:53:43
【问题描述】:
我有一个 Ajax 搜索表单,它当前正确返回查询的用户的用户名和个人资料图像,如下所示:
[{"username": "bugfixtest1", "userprofileinfo__profile_pic": "user-icon.png"}, {"username": "test", "userprofileinfo__profile_pic": "placeholder.jpg"}, {"username": "testemailsend", "userprofileinfo__profile_pic": null}, {"username": "testwithoutprofile", "userprofileinfo__profile_pic": null}]
但是,我现在正尝试遍历其中的每一个并将结果输出为 HTML。但是,以下似乎不起作用:
$.ajax({
url: '/ajax/search-users/',
type: 'GET',
data: {
'Q': text
},
dataType: 'json',
success: function(data) {
var item = data.usersearchresult
$.each(item.DATA, function(index,item) {
$('#search_results').html('<li>' + item.username + ' </li>');
});
我也试过了:
success: function(data) {
for (var i = 0; i < data['usersearchresult'].length; i++){
$('#search_results').html('<li>' + data['usersearchresult'][i] + ' </li>');
}
}
这些似乎都不起作用?
【问题讨论】:
-
你从哪里得到
usersearchresult?你的json没有这样的字段吗? -
@Swati 从我的 django 视图 -
qs_json = serializers.serialize('json', queryset)return JsonResponse({'usersearchresult': qs_json这工作正常,因为 json 在模板中呈现,我只是无法取出项目 -
你可以直接在for循环中传递
data。即:$.each(data, function(index,item) { $('#search_results').append('<li>' + item.username + ' </li>'); });。也可以使用append而不是html。
标签: jquery arrays json ajax django-queryset