私がこの関数を書いたやり方は今ではうまくいっていますが、それを書くためのより良い、あるいはより効率的な方法があるかどうかは不思議です。地理学をさらにフィルタリングするためのリストを取得するajax呼び出しです。たとえば、countyが選択されている場合、その州のすべての郡のリストが取得されます。 私はまだコーディングを学んでおり、良いコーディング手法を使うことでよりうまくやりたいと思っています。この関数を書くより効率的な方法は? (Django、AJAX)
$.ajax({
url : "filters",
type : "POST",
data : { search : selected_state, geog : selected_geog },
success: function(data) {
$.each(data, function(i, v) {
switch(selected_geog) {
case 'County':
case 'Dma':
filters.push(v.fields.name);
break;
case 'Zip':
var exists = $.inArray(v.fields.zcta, data_check);
if (exists < 0) {
data_check.push(v.fields.zcta);
}
data_check.sort();
var exists2 = $.inArray(v.fields.county, filters);
if (exists2 < 0) {
filters.push(v.fields.county);
}
filters.sort();
break;
case 'CD':
filters.push(v.fields.cd114fp);
break;
case 'Zones':
var exists = $.inArray(v.fields.p_dma, filters);
if (exists < 0) {
filters.push(v.fields.p_dma);
}
filters.sort();
var exists2 = $.inArray(v.fields.owner, attrfilters);
if (exists2 < 0) {
attrfilters.push(v.fields.owner);
}
SHPconverter.attrfilters.sort();
var exists3 = $.inArray(v.fields.scode, data_check);
if (exists3 < 0) {
data_check.push(v.fields.scode);
}
data_check.sort();
break;
}
})
}
})
、ここでDjangoのビュー
def filters(request):
searchVar = request.POST.getlist('search[]')
geogVar = request.POST.get('geog')
if geogVar == 'County':
county_as_json = serialize(
'json', County.objects.filter(
state__in=searchVar).order_by('state', 'name'))
return HttpResponse(county_as_json, content_type='json')
elif geogVar == 'DMA':
dma_as_json = serialize(
'json', Dma.objects.filter(
state__in=searchVar).order_by('state', 'name'))
return HttpResponse(dma_as_json, content_type='json')
elif geogVar == 'CD':
cd_as_json = serialize(
'json', Cd.objects.filter(
state__in=searchVar).order_by('state', 'cd'))
return HttpResponse(cd_as_json, content_type='json')
elif geogVar == 'Zip':
zip_as_json = serialize(
'json', Zip.objects.filter(
state__in=searchVar).order_by('state', 'county'))
return HttpResponse(zip_as_json, content_type='json')
elif geogVar == 'Zones':
zones_as_json = serialize(
'json', Zones.objects.filter(
state__in=searchVar).order_by('sname'))
return HttpResponse(softzones_as_json, content_type='json')
試してみてくださいhttp://codereview.stackexchange.com/ –