После запроса AJAX Post я пытаюсь получить из моего представления некоторые значения списка, содержащиеся в переменной. Идея состоит в том, чтобы использовать эти значения для заполнения раскрывающегося списка. Но моя переменная кажется пустой. Я думал, что это потому, что я изначально использовал функцию return render (), но даже с функцией return HttpResponse () это не работает.
Это мой views.py:
def MyView3(request):
if request.method == 'POST' and request.is_ajax:
myVariable = ["1", "2", "3", "4", "5"]
print(myVariable)
return HttpResponse(myVariable)
else:
return render(request,'home3.html')
Это мой html код:
<form class="wrapper" action="" method="post"> {% csrf_token %}
<select name="myVal" class="toChange">
<option val="1">1</option>
<option val="2">2</option>
</select>
<select id="dep" name="dep">
{% for item in myVariable %}
<option val="{{ item }}"> {{ item }} </option>
{% endfor %}
</select>
<script type="text/javascript">
function dropdownChange () {
var selectedValue = $(".toChange option:selected").val();
$.ajax({
type: 'POST',
data: {'myVal': selectedValue},
});
var mylist = '{{myVariable}}';
alert(mylist);
}
$(".toChange").change(dropdownChange);
</script>
</form>
Идея состоит в том, чтобы вызвать вызов AJAX когда я выбираю новое значение в раскрывающемся списке myVal. Вызов работает, поскольку представление правильно активировано, так как «print (myVariable)» показывает ожидаемый результат в консоли. Кроме того, отображается мое всплывающее окно с предупреждением. Тем не менее, он пуст. Мне нужно было бы показать значения, содержащиеся в 'myVariable', поэтому '["1", "2", "3", "4", "5"]'. Я предполагаю, что это должно быть что-то простое, но я не мог понять, что. Не могли бы вы помочь?