Flask и JQuery: как загрузить другую страницу с помощью JQuery

0

У меня есть форма, в которой пользователь вводит запрос:

<form class="navbar-form navbar-left" role="search">
   <div class="form-group">
       <input type="text" class="form-control" id="search-val" placeholder="Search">
   </div>
   <button type="submit" class="btn btn-default" id="search-btn">Submit</button>
</form>

Я хочу получить этот ввод пользователя и вызвать страницу сертификации. Например /index?search_term=foo

Я попытался сделать это с помощью JQuery с такими вещами, как:

$('#search-btn').on('click',function(){
    var search_term = $('#search-val').val();
    $.get( "/?search_term="+search_term);
});

На стороне Python я пытаюсь получить доступ к параметру следующим образом:

s = request.args.get('search_term', '')

Но это не работает. Страница только обновляется, и Python не получает search_term. Я новичок в Flask, поэтому, пожалуйста, несите меня.

Теги:
flask

1 ответ

1
Лучший ответ

Вы забываете отменить действие по умолчанию, которое должно отправить страницу:

$('#search-btn').on('click',function(){
    var search_term = $('#search-val').val();
    $.get( "/?search_term="+search_term);
    return false;
});

Без return false браузер с радостью также отправит форму, которая в этом случае означает, что она будет использовать GET на том же URL-адресе, что и страница (нет атрибута action). Это, в свою очередь, отменяет любые ожидающие запросы AJAX.

Конечно, ваш $.get() все еще не делает ничего на стороне браузера, но, по крайней мере, отменив действие формы по умолчанию, вы увидите эффект на стороне сервера.

  • 0
    Кроме того, им придется исправить $.get() который ничего не делает, как написано в данный момент.
  • 0
    @ jfriend00: я предполагал, что это был тест отладки; ОП не видит ничего, что происходит на стороне Колбы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню