#python #ajax #flask
Вопрос:
Я пытаюсь написать небольшое веб-приложение, используя Flask. Но у меня есть вопрос при создании списка выбора. Например, в Интернете есть 2 списка выбора. Первый — «Идентификатор ключа», а второй — «Имя поля». Когда пользователь нажимает на элемент в списке выбора «Идентификатор ключа», появляется соответствующий список выбора «Имя поля».
Вот HTML-код:
<div class="control">
<label for="keyid">KeyID of parking spots:</label><br>
<select name ="keyidList" id="keyid_list" style="width: 400px">
{% for keyid in keyIDs %}
<option value ="{{keyid}}">{{keyid}}</option>
{% endfor %}
</select><br><br>
</div>
<div class="control">
<label for="fieldname">FieldName of parking spots:</label><br>
<select name ="fieldnameList" id="fieldname_list" style="width: 400px">
{% for fieldname in fieldnames %}
<option value ="{{fieldname}}">{{fieldname}}</option>
{% endfor %}
</select><br><br>
</div>
Код Javascript в HTML-файле
<head>
<meta charset="utf-8">
<script>
$(function(){
var select_keyid = $('#keyid_list');
var selected_keyid = select_keyid.val();
select_keyid.on('change', function(){
$.ajax({
type: 'POST',
data: JSON.stringify({
'selected_keyid': selected_keyid,
}),
url: "{{ url_for('auth.get_fieldname_list') }}",
success: function(data) {
$("#fieldname").empty();
for (var i = 0; i < data.length; i ) {
$("#fieldname").append('<option value="' fieldname '">' fieldname '</option>');
}
}
});
});
});
</script>
</head>
А вот код колбы Python
@auth.route('/get_fieldname_list', methods=['POST'])
def get_fieldname_list():
req = request.json
keyid = req.get('selected_keyid')
fieldname = get_field_name_from_keyid(keyid)
return fieldname
Лично я думаю, что проблема в коде ajax, но я не знаю, почему и как это исправить. Любой совет будет очень признателен.
Комментарии:
1. Привет, эта строка
var selected_keyid = select_keyid.val();
должна быть внутри обработчика событий, иначе она будет принимать только первое значение .2. @Swati, спасибо, но пока это все еще не работает вообще. Вы все равно знаете, как отлаживать javascript в html-файле? Я новичок в веб-разработке
3. проверьте консоль вашего браузера, если есть какие-либо ошибки . Также
console.log(selected_keyid)
внутри обработчика событий посмотрите, отображается значение или нет (это вы можете увидеть в консоли браузера) .