У меня есть форма, в которой пользователь вводит запрос:
<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, поэтому, пожалуйста, несите меня.
Вы забываете отменить действие по умолчанию, которое должно отправить страницу:
$('#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()
все еще не делает ничего на стороне браузера, но, по крайней мере, отменив действие формы по умолчанию, вы увидите эффект на стороне сервера.
$.get()
который ничего не делает, как написано в данный момент.