我有一个初始加载页面显示数据库中的所有自由职业者。我有一个创建POST请求的函数,传递三个select元素的数据以从数据库中检索特定匹配。
$(document).ready(function() {
$('select.university').change(function(){
$.ajax({
type: 'POST',
url: '#',
data: {
university: $('select.university').val(),
skill: $('select.skill').val(),
city: $('select.city').val()
},
dataType: 'html'
});
return false;
});
});
我的观点获取数据并通过HttpResponse返回它们:
def browse_freelancers(request):
if request.method == 'GET':
...
else:
skills = request.POST.getlist('skill')
universities = request.POST.getlist('university')
cities = request.POST.getlist('city')
# fetch from database
return HttpResponse({'freelancers': freelancers,
'skills': skills,
'universities': universities,
'cities': cities})
特定的提取肯定正在执行,因为我可以在调试器中逐步执行它,但我的HTML中没有任何变化。我错过了什么?
答案 0 :(得分:3)
在你的观点中,
test.sh "$(awk -F'</?password>' 'NF>1{print $2}' file)"
如果您使用的是Django 1.7+,则可以使用JsonResponse
代替from django.utils import simplejson
def browse_freelancers(request):
...
data = simplejson.dumps({'freelancers': freelancers,
'skills': skills,
'universities': universities,
'cities': cities})
return HttpResponse(data)
。
HttpResponse
您需要在from django.http import JsonResponse
return JsonResponse({'foo':'bar'})
。
success
功能
$.ajax()
答案 1 :(得分:0)
您需要将dataType
设置为&#39; json&#39;然后在你看来:
return HttpResponse(content=json.dumps({'freelancers': freelancers,
'skills': skills,
'universities': universities,
'cities': cities}))
答案 2 :(得分:0)
另一种可能的结构:
if request.is_ajax() and request.method == 'POST':
# ...
response = {'freelancers': freelancers,
'skills': skills,
'universities': universities,
'cities': cities}
return JsonResponse(response)
else:
# ...