从另一个选择框填充选择框并使用数据库连接

时间:2012-08-07 08:51:39

标签: javascript jquery python django

我有两个选择框:一个是国家,另一个是城市。 当用户选择国家/地区时,应该在数据库的“城市”中填充该国家/地区的相应城市。

我是jquery和javascript的新手,我不知道如何实现这一点。如果有人给我一个用于执行此功能的示例代码,将不胜感激。我不知道,因为我是脚本语言的新手,所以我几乎陷入困境。

我在django框架中的一个表单中使用它,这是在python中实现的。

提前谢谢

<!DOCTYPE html>
<html>
<head>
  <style>
  div { color:red; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <select name="country" id="country">
    <option value = "india">india</option>
    <option value = "USA">USA</option>
    <option value = "UK">UK</option>
    <option value = "China">China</option>
    <option value = "Sweden">Sweden</option>
    <option value = "Germany">Germany</option>
  </select>

  <select name="cities" id="cities">
  <option value = ""></option>
  </select>  
  <div></div>  

</body>
</html>

1 个答案:

答案 0 :(得分:0)

试试这个:

在您的模板中

 $('#country').change(function() { 
    var value = $(this).attr('value'); 
    var request = $.ajax({
        url: "/getcities/",
        type: "GET",
        data: {country : value},
        dataType: "json",

        success: function(data) {
         //Popluate combo here by unpacking the json
        }
    });


});

在您看来:

def getcities(request)
    if request.method == "GET":
        country = request.GET["country"]
        cities = Cities.objects.filter(country=country)
        results = [{'city': str(city.name), 'id':city.id} for city in cities]
        json = simplejson.dumps(results)
        return HttpResponse(json, mimetype='application/json')

您必须在urls.py中将url / getcities /映射到您的视图。