我有两个字段,具体取决于字段。 到目前为止,我可以使一个字段依赖,但不是两个,因为我不知道如何控制Ajax的数据变量。
$("#id_type1").change(function () {
var url = $("#personForm").attr("data-tiers-url"); // get the url of the `load_cities` view
var typeID = $(this).val(); // get the selected country ID from the HTML input
// alert(countryId)
$.ajax({ // initialize an AJAX request
url: url, // set the url of the request (= localhost:8000/hr/ajax/load-cities/)
data: {
'tiers': typeID // add the country id to the GET parameters
},
success: function (data) { // `data` is the return of the `load_cities` view function
alert(data)
$("#id_tiers").html(data);
// replace the contents of the city input with the data that came from the server
}
});
});
这是返回包含树变量的数据的视图:
def load_tiers(request):
tiers_id = request.GET.get('tiers')
print(tiers_id)
tiers = operation_Bancaire.objects.all().filter(type_tiers=tiers_id)
#print(cities)
frs="Fournisseur";
clt="1";
if tiers_id=="Fournisseur":
frs = operation_Bancaire.objects.all().filter(type_tiers=tiers_id)
elif tiers_id=="client":
clt = operation_Bancaire.objects.all().filter(type_tiers=tiers_id)
return render(request, 'appOne/city_dropdown_list_options.html', {'tiers': tiers,'frs':frs,'clt':clt})
我需要控制此data
:$("#id_tiers").html(data);
,以#id_tiers
为data['frs']
,而不是'tiers','frs','clt'
这包含数据:
你可以帮助我实现这个目标,因为我是Ajax的新手,也是js的新手。答案 0 :(得分:0)
我可以建议您更改Python端点或创建新端点,这样您只需将JSON返回给您的AJAX调用吗?与以JSON发送响应相比,解析HTML以获得所需的值更加困难。
def load_tiers_json(request):
tiers_id = request.GET.get('tiers')
tiers = operation_Bancaire.objects.all().filter(type_tiers=tiers_id)
frs="Fournisseur";
clt="1";
if tiers_id=="Fournisseur":
frs = operation_Bancaire.objects.all().filter(type_tiers=tiers_id)
elif tiers_id=="client":
clt = operation_Bancaire.objects.all().filter(type_tiers=tiers_id)
return JsonResponse({'tiers': tiers,'frs':frs,'clt':clt})
然后在您的AJAX调用中,从返回的data
:
$("#id_type1").change(function () {
var url = $("#personForm").attr("data-tiers-url"); // get the url of the `load_cities` view
var typeID = $(this).val();
$.ajax({
url: url,
data: {
'tiers': typeID
},
success: function (data) {
$("#id_tiers").html(data.frs);
}
});
});
当然,您需要更改Django urls.py
以公开此新端点,并更改JavaScript调用中的url
值以使用新端点。