#javascript #python #html #flask #drop-down-menu
#javascript #python #HTML #flask #выпадающее меню
Вопрос:
У меня есть веб-приложение с формой, которая принимает два входных данных: имя файла и номер спринта.
Первый, который принимает имя файла, представляет собой динамически заполняемый список, который извлекает список файлов CSV в определенном каталоге и соответствующим образом заполняет список форм.
В каждом из этих CSV-файлов есть несколько повторяющихся номеров sprint (например, 2012, 2027 и т. Д.). После выбора из первого выпадающего списка я хочу, чтобы второй выпадающий список был заполнен списком всех уникальных номеров sprint из выбранного имени файла CSV. Эти уникальные номера спринта, вероятно, могут быть сгенерированы с помощью скрипта python, а затем результаты должны каким-то образом использоваться для заполнения второго выпадающего списка.
Смотрите Картинку для лучшей идеи.
Кто-нибудь знает, как подойти к этому?
<form action="{{ url_for('output_burndown_chart') }}" method="post">
<label for="file_name">File Name:</label><br>
<!-- <input type="text" name="file_name"><br><br> -->
<select id="file_name" name="file_name">
{% for i in dir_files %}
<option value="{{ i }}">{{ i }}</option>
{% endfor %}
</select>
<br>
<br>
<label for="sprint_number">Sprint Number:</label><br>
<input type="text" name="sprint_number"><br><br>
<input type="submit">
</form>
@app.route('/burndown', methods=['GET','POST'])
def output_burndown_chart():
if request.method == "POST":
sprint_num = request.form['sprint_number']
file_name = request.form['file_name']
dir_name = "./files"
file_path = os.path.join(dir_name, file_name)
df_final = burndown_gen(file_path, sprint_num)
return render_template('test.html', df_final=df_final, sprint_num=sprint_num)
elif request.method == 'GET':
dir_files = os.listdir('./files/')
print(dir_files)
return render_template('burndown_form.html',dir_files=dir_files)
Комментарии:
1. У вас есть вопрос? В настоящее время вы только что объяснили, чего хотите. Хотя вы должны включить свой код и задать свой вопрос конкретно об этом коде. Мы можем помочь вам с этого момента.
2. Извините. Я действительно хочу знать, какой подход следует предпринять. На самом деле нет кода для отображения, поскольку я не знаю, с чего начать.
3. Нет, беспокойства. Спасибо за включение python и HTML. В настоящее время у вас есть только 1 элемент dropdown (
<select>
) в вашем HTML. Разве не должно быть и второго? Второй будет заполнен на основе результата первого элемента select через AJAX.4. Это то, что вы должны попробовать: 1. Заполните первое
<select>
поле в шаблоне flask. 2. Используйте JavaScript для обнаружения пользовательского ввода (изменения) в этом первом поле иfetch
отправки запроса на сервер. Используйте ответ для заполнения второго<select>
поля. 3. Отправьте свою форму.