0
我有一個很多領域的表格,但我有兩個選擇,一個選擇國家,一個選擇我選擇的國家的城市。AJAX,Django和HTML選擇?
我想這樣做:當我在第一個選擇中選擇國家時,我想更改第二個選擇的城市,並通過我選擇的contry的ID進行過濾。
這裏是我的Models.py
class country(models.Model):
country_name = models.CharField(max_length=264)
def __str__(self):
return self.country_name
class country_cities(models.Model):
city_name = models.CharField(max_length=264)
country = models.ForeignKey(country)
def __str__(self):
return self.city_name
,這裏是我的HTML表單:
<form method="post">
<input type="text" name="username">
<select name="country" onchange="listCities()">
{% for country in countrylist %}
<option value="{{ country.id }}">{{ country.country_name }}</option>
{% endor %}
</select>
<select name="city" id="citylist">
<!--HERE IS WHERE I WANT TO LIST JUST THE CITIES OF THE COUNTRY THAT I SELECTED-->
</select>
</form>
如何讓我的觀點,我有什麼庫在我的views.py導入?另外我不確定我的AJAX庫或我的腳本是否正確。
AJAX:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
</script>
SCRIPT:
<script type="text/javascript">
function listCities()
{
var countryid = $("[name='country']").val();
$('#citylist').html('');
$.ajax({
type: "POST",
data: "countryid="+countryid,
url: "editprofile/",
success: function(result)
{
var resultObj = JSON.parse(result);
var dataHandler = $("#citylist");
$.each(resultObj, function(key, val)
{
var newRow = $('<option value="'+val.id+'">');
newRow.html(' '+val.city_name +'');
dataHandler.append(newRow);
});
}
});
}
</script>
而不是做一個Ajax調用,你有沒有考慮讓所有的城市加載客戶端在json對象中,並使用普通的javascript來改變你的第二選擇的選項? – DragonBobZ
這是一個小提琴https://jsfiddle.net/q4np1169/看起來如何。 (使用jQuery,而不是普通的js) – DragonBobZ