我有两个下拉列表城市下拉列表和区域下拉列表
这个项目正在开发python + Django frameowrk
当在django中使用以下概念时,它不起作用并在警报窗口中给出错误。
所以我的问题是,当我从第一个下拉列表中选择任何城市时,第二个下拉列表数据将使用ajax从数据库更新。也许在这里Ajax不起作用。我在ajax中并不完美,所以请阅读以下代码并解决我的问题。
谢谢。
在index.html中
<div class="input-field col l2 s12 m12">
<select id="ddlcity" name="ddlcity">
<option value="None" selected disabled>Choose City</option>
{% for i in allcities %}
<option value="{{ i.id }}">{{ i.city_name }}</option>
{% endfor %}
</select>
<label>Select City</label>
</div>
<div class="input-field col l3 s12 m6">
<select id="ddlarea" name="ddlarea">
<option value="" disabled selected>Choose your area</option>
</select>
<label>Your Selected Area</label>
</div>
在index.html中使用的Ajax代码
$(document).ready(function () {
$('#ddlcity').change(function () {
var data_ = $('#ddlcity').val();
$.ajax({
type: "get",
url: '/get/areadata/' + data_ + '/',
data: data_,
success: function (data) {
$('#ddlarea').empty();
$.each(data.d, function (key, value) {
$('#ddlarea').append($("<option></option>").val(value.AreaID).html(value.AreaName));
});
},
failure: function (response) {
alert(response.d);
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus, errorThrown);
}
});
});
});
在urls.py
url(r'^/get/areadata/(\d+)/$', 'main.views.getarea', name='getareadata'),
在views.py
中def getarea(request, cityID):
id = Area.objects.filter(city_id=cityID)
id = id.all().order_by('area_name')
return render(
request, 'files/index.html',
context_instance=RequestContext(request, { 'allarea': id }))