Задать вопрос
@Atroshchenko-Dima
Python, postgres

Как получить значение выбранное из выпадающего списка и отправить его на сервер?

Если реализовать введение данных вручную таким способом, значение отправляется на сервер и запрос из БД выдает таблицу корректно

<label for="station">Выберите станцию::</label>
<input type="date" id ="station" name ="station"><br><br>


Решил реализовать вместо ввода вручную выпадающий список, но теперь при нажатии на кнопку применить, на сайте я вижу только пустую таблицу с заголовками. Подскажите, пожалуйста, что мне нужно исправить?

index.html
{% if form_visible %}
    <form method ="post" action="/">
    <label for="year  ">Год:</label>
    <input type="number" id ="year" name ="year"><br><br>

    <label for="station">Выберите станцию:</label>
    <select type="text" id ="station" name="station">
      <optgroup label="Москва">
        <option value="1">станция-1</option>
        <option value="2">станция-2</option>
        <option value="3">станция-3</option>
      </optgroup>
      <optgroup label="Питер">
        <option value="4">станция-4</option>
        <option value="5">станция-5</option>
      </optgroup>
        </select><br><br>

    <input type = "submit" value="Применить">

    <a href = "{{url_for('download', year=request.form['year'], station=request.form['station'])}}">Скачать</a>
    </form>
{% endif %}


@app.route("/", methods=["GET","POST"])
def index():
    cur = conn.cursor()
    cur.execute("SELECT * FROM fact_indicators;") 
    rows = cur.fetchall()
    cur.close
    
    if request.method == "POST":
        year = request.form["year"]
        station = request.form["station"]
        # Запрос к БД с использованием параметров дат
        cur = conn.cursor()
        cur.execute("SELECT * FROM fact_indicators WHERE fact_year = %s AND fact_station_name = %s;",(year,station)) 
        rows = cur.fetchall()
        cur.close
        # Отображение полученных данных на странице
        return render_template("index.html", rows=rows, form_visible=True)
    else:
        return render_template("index.html",rows=rows, form_visible=False)
  • Вопрос задан
  • 383 просмотра
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы