Как flask сделать перенаправление с помощью jquery? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть слайдер на моей странице и мультиселект из внешних .js файлов.

Это выглядит так:

введите описание изображения здесь

и код:

div class="container mb-5">
        <input type="text" id="length" readonly style="...">
    <div id="price-slider"></div>
</div>


<div class="container py-5">
    <select id="states" class="form-control" multiple="multiple" style="display: none;">
        <option value="AL">Alabama</option>
        <option value="AK">Alaska</option>
        <option value="AZ">Arizona</option>
        <option value="AR">Arkansas</option>
        <option value="CA">California</option>
    </select>
</div>

// Button goes here

Теперь у меня также есть несколько jQuery, которые могут определить, когда кнопка нажимает на мою страницу, и затем получить значения ползунка (как сверху, так и снизу) и массив состояний.

Теперь я хочу использовать flask, чтобы использовать значения, переданные из вызова jquery ajax, чтобы загрузить другой маршрут в мое приложение с этой информацией.

Например, вы можете представить себе, что ползунок предназначен для диапазона цен, а состояние - это состояние, в которое продукт может быть доставлен.

Теперь я попробовал следующее в моем flask маршруте:



@app.route('/filter', methods=['GET', 'POST'])
def filter():
    max_price = request.values.get('maxPrice') # from ajax call
    min_price = request.values.get('minPrice')
    states = request.form.getlist("states[]")

    if any(max_price, min_price, states):
        filtered_results = # get filtered data
        return render_template('results.html', filtered_results=filtered_results)


    return render_template('filter.html') # if no information provided then return stay on filter page

Я думал, что страница загрузится, тогда вы можете выбрать состояние, например, нажать кнопку, и вызов ajax вызовет утверждение if, которое будет истинным, и тогда вы будете перенаправлены, но этого не произойдет.

Однако, хотя это и дает всю информацию После вызова ajax он никогда не возвращает 'результаты. html', даже если any() возвращает true.

Я застрял на том, как заставить мою страницу перенаправить на results.html когда я нажимаю кнопку с ползунком и состояниями, имеющими значения.

Я также подумал, чтобы попытаться обернуть это в форму, но я не мог понять, как получить значения, переданные из jquery в то же время как отправка формы.

Может кто-нибудь сказать, пожалуйста, как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...