Добавление значений при их переборе python
У меня есть список элементов на python, который я получаю на странице index.html как выпадающий список и могу отправлять выбранное значение на другую страницу для обработки. Вопрос в том, как сделать так, чтобы можно было выбирать не один элемент списка, а несколько сразу?
Вот весь рабочий код:
app.py:
import os
from flask import Flask, render_template, request
app = Flask(__name__)
values = ['one','two','three','four','five','six','seven','eight','nine','ten']
@app.route('/', methods=['GET','POST'])
def dropdown():
return render_template('includes/index.html', values=values)
if __name__ == '__main__':
app.run()
index.html:
<form action='/action' method="POST">
<input list="myvalue" name="myvalue">
<datalist id="myvalue" list="values">
{% for val in values %}
<option value="{{val}}">{{val}}</option>
{% endfor %}
</datalist>
<input type="submit">
</form>
Ответы (1 шт):
Автор решения: svmitin
→ Ссылка
В вашем случае отлично подошел бы select-2
Пример
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<!-- Стили для Select2 -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css" rel="stylesheet" />
<!-- Подключаем JQuery и Select2 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js"></script>
</head>
<body>
<select multiple="multiple" id="mySelect2">
<option value="AZ">Arizona</option>
<option value="CO">Colorado</option>
<option value="ID">Idaho</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NM">New Mexico</option>
</select>
<br>
<button onclick="print_data()">click me</button>
<br>
<input type="text" id="myInput"></input>
<script>
// Инициализация Select2
$(document).ready(function() {
$('#mySelect2').select2();
});
// Функция для кнопки
function print_data(){
let select_data = $('#mySelect2').select2('data');
// Создаем новый массив для удобства
let input_text = [];
for (let city in select_data) {
input_text.push(select_data[city]['id']);
// Отображаем вычисления в myInput
document.getElementById("myInput").value = input_text;
}
// console.log(select_data);
// console.log(input_text);
}
</script>
</body>
</html>