【发布时间】:2018-02-28 18:33:03
【问题描述】:
在我的页面中,我有一个下拉菜单,选择后我想传递一个 GET 请求。这个 GET 请求应该(理想情况下)从我的 views.py 文件中触发一个函数,并从我的数据库中返回一些数据(基于选择)。但是,下拉菜单选择时似乎并没有实际发生任何事情。
这是我为在进行选择时触发 GET 请求而编写的脚本:
<!-- AJAX Call for dropdown menu selection -->
<script type="text/javascript">
var url = $('.dropdown-menu').attr('action');
$('.dropdown-menu-option').click(function(e){
e.preventDefault();
$.ajax({
type: "GET",
url: url,
data: {
class: $('.dropdown-menu-option').val()
},
success: function(result) {
alert ('pass');
},
error: function(result) {
alert('fail');
}
});
});
</script>
这是我的模板中下拉菜单的代码:
<!-- Query based content for dropdown menu -->
<select class="dropdown-content">
{% if current_user_properties %}
{% for property in current_user_properties %}
<option class="dropdown-menu-option" value="{{property.id}}">{{property.name}}</option>
{% endfor %}
{% else %}
<option>You don't have any properties</option>
{% endif %}
</select>
最后,这是我想在views.py中运行的函数的代码
def property_selected(request):
if request.method == 'GET':
selection = request.GET.get('class', None)
if selection:
selected_data = MeterData.objects.filter(property=selection).order_by(date)
return selected_data
如果有人可以帮助确定我遗漏了什么/做错了什么,我们将不胜感激。谢谢!!
【问题讨论】:
-
您在操作后缺少
' -
class: $('.dropdown-menu-option').val()也应该是class: this.value -
@Musa 在将代码放入此处时实际上是一个错误,我的实际代码确实缺少引号,我已经编辑了问题以反映这一点。不过谢谢!
标签: javascript python jquery ajax django