首页 > 解决方案 > Django:如何在 AJAX POST 请求中检索两个不同变量的值?

问题描述

我正在尝试将来自两个不同下拉列表的两个值发送到我的 Django 视图,但它不起作用。只有第一个下拉值被发送到视图。

假设我有以下观点:

def MyView(request):

    if request.method == 'POST' and request.is_ajax:

        result_1 = request.POST.get('d1')
        print(result_1)
        result_2 = request.POST.get('d2')
        print(result_2) 

这是html代码:

<script type="text/javascript">
  function dropdownChange () {
    var selectedRegion = $(".toChange option:selected").val();
    $.ajax({
            url: '/myApp/templates/',
            type: 'POST',
            data: {'d1': selectedRegion},
            }
    }); 
}
$(".toChange").change(dropdownChange);
</script>

  <select name="d1" class="toChange">
    <option val="1"> 1 </option>
    <option val="2"> 2 </option> 
  </select>

 <select name="d2">
    <option val="3"> 3 </option>
    <option val="4"> 4 </option> 
  </select>

当下拉 d1 面临更改时,我希望将 d1 和 d2 值都发送到我的视图。d1 的值被正确捕获,但 d2(因此 result_2)显示“[]”。如何捕获这两个变量?

标签: javascriptjquerydjangoajax

解决方案


只需将其添加到数据变量中:

var selectedRegion = $(".toChange option:selected").val();
var selectedRegion2 = $("select[name=d2] option:selected").val();
$.ajax({
    url: '/myApp/templates/',
    type: 'POST',
    data: {'d1': selectedRegion, 'd2': selectedRegion2},           
}); 

推荐阅读